在某些情況下,我們需要從一個或多個文件中刪除特定的一行,例如,發生在我身上的是完整的文件列表,我需要刪除所有這些中的第27行(第27行是ACL,規範,規則,配置),我可以逐個文件地編輯文件,也可以使用以下命令實現所需的功能 口渴 和bash腳本(可選)。
但是,讓我們嘗試一個簡單的文件。
我們有文件 發行版-deb.txt 其中包含:
Debian的
Kubuntu的
ArchLinux的
溶質
薄荷
換句話說,文件 發行版-deb.txt 我們將在其中放置基於Debian的發行版,但在第3行中看到“ archlinux”,該發行版顯然與Debian無關,因此我們必須刪除該行。 為了消除該文件的第3行,我們將放置以下內容:
sed "3d" distros-deb.txt > distros-deb-ok.txt
用以下方法解釋這條線有些容易 口渴的“ 3d” 我們表示我們將刪除第3行, 發行版-deb.txt 我們指示要處理的文件,即刪除該文件的第3行,如果按Enter鍵,則顯示到此處,它將顯示我們想要的內容,但是在終端中,因此 > distros-deb-ok.txt 我們指出,它不是將結果顯示在終端中,而是將其放入具有此名稱的文件中。
有什麼簡單的?
另外,我們可以避免使用 > distros-deb-ok.txt 使用適當的參數 口渴,參數 -i
也就是說,如果我們要從文件中刪除該行並以相同的名稱保存(而不是在另一個文件中),只需添加參數 -i :
sed -i "3d" distros-deb.txt
這將從distros-deb.txt中刪除第3行並保存。
如果我想要一系列的行,那就是刪除第3行,同時刪除#4和#5,該怎麼辦? 為此,我們將範圍設置為3到5:
sed -i "3,5d" distros-deb.txt
而且只會顯示debian和kubuntu😀
如果我不知道總行數,又想從第二行刪除到最後一行怎麼辦?
只需使用美元符號-»$
sed -i "2,$d" distros-deb.txt
如果您想從第一行中消除到#4,那麼我們只需將值1放在開頭:
sed -i "1,4d" distros-deb.txt
這就是一切,這是一個非常有用的技巧,當您要製作bash腳本以使任務自動化並且需要修改和消除配置文件行時,可以使用 口渴 o perl的,以及消除方法,我們已經知道如何使用sed😉
問候
很好的貢獻😉
謝謝
順便說一下,我們現在已經收到您的電子郵件,我會回答您
問候
作為終端,服務器和ssh連接的大祭司,我來找你,哦,偉大的KZKG ^ Gaara,我問你:我在哪裡可以得到我的無知水平的教程,使我可以在兩個遠程計算機之間使用ssh連接在不同的網絡中共享文本文件,pdf,圖像和聲音(mp3)…。
🙂
認真地說,您能在這方面指導我嗎,我有兩台機器,一台在工作,一台在家裡,我需要它們之間的ssh連接(因為據我所知,ssh允許在機器之間共享內容,是嗎? )。
如果我錯了,您推薦什麼應用程序?
在這方面,我在哪裡可以找到基本教程?
scp。
scp用戶@機器地址:路徑用戶@機器地址:路徑。
與cp相同的語法,源->目標。
你出現了,你迷路了。
好提示!
有趣的提示…xD
您是否碰巧知道一種使粗體文字脫穎而出的方法?
我的意思是,我有一個作為字典的txt文件,它有10000多行,並且我希望它在“:”懸掛點之前突出顯示某些文本,並且一個接一個地做。
HOLA,
txt文件是純文本,顧名思義...純文本,沒有格式或類似內容,很抱歉,但是我認為您的要求無法解決,可以嗎? 🙁
問候
確實可以,但是您必須知道目標格式。
例如:
echo $(echo“ Robert:Hello。Change here” | sed的/ \ ./。\\ e [40; 31m /; s / \:/:\\ e [40; 35m /')
這是應對的問題。
可以使用的另一種刪除方法是sed'/'$ 1'/ d',但是您必須確保重新輸入。
然後將其保存到* .odt中
使用LibreOffice難道沒有更簡單的方法嗎?
您可以刪除一行的一部分,其餘部分保留嗎?
假設我要刪除某行中某個單詞前面的所有內容。
或刪除該詞後的所有內容。
是的,這是拉正則表達式的問題(如有必要,請使用man sed -r,–regexp-extended)
從我發現的開始
迴聲«羅伯特:你好。 更改此處»| sed's / Change //'
與定義良好的模式和。 (一個字符)和*(一個以上)
則:
迴聲«羅伯特:你好。 更改此處»| sed's / Change。* //'
之前:
迴聲«羅伯特:你好。 在此處更改»| sed的/。*更改//'
如果重要的是出現這個詞
迴聲«羅伯特:你好。 更改此處»| sed的/更改* /更改/'
或更詳細
在包含Robert的行中Change之後會發生什麼
echo -e«弗里茲:你好。 更改此處\ nRobert:您好。 在此處更改»| sed'/Robert/s/Cambio.*//'
或者像一開始就取出第二行並處理其餘部分
echo -e«弗里茲:你好。 更改此處\ nRobert:您好。 更改此處\ n其他»| sed -e 2d -e's / Change。* //'
echo -e«弗里茲:你好。 更改此處\ nRobert:您好。 更改此處\ n其他»| sed'2d; s / Change。* //'
謝謝,對我來說非常有用。
不錯的文章,我喜歡它,SysAdmin非常好!
如果沒有sed,awek,perl,grep,tail,head,“ Emacs”和許多其他必備工具,我們的生活將會怎樣!
謝謝,這非常有幫助。
您好,如何用同一命令從文件中刪除第1,4和10行?