Linux常用命令 sed

2022-02-02 09:05:19 字數 1406 閱讀 7469

本文記錄的是自己在學習《linux私房菜》中正規表示式的筆記。 

關於行尾符$

如果檔案本身沒有內容,比如使用touch新建的檔案,那麼$將會沒有意義。例如下面操作:

先使用touch新建了乙個test.txt檔案,然後嘗試使用sed命令去在行尾增加內容,但是沒有成功(緊接著的cat命令沒有輸出任何東西),然後我使用vim給test.txt手動增加了一行內容「add by vim」,然後再使用同樣的sed命令就成功了,如後續cat命令輸出結果。

命令sed

sed是乙個十分有用的管道命令,功能很多,而且都是用的比較多的場景。

sed [-nefri] [動作]

下面是動作說明,動作需要使用單引號『』,且可以用兩個數字或者$來選擇進行動作的行數,『[n1[,n2]]function』,比如'2,5d','2d','3,$d'這三種形式,分別表示選擇[2-5]行,第2行,[3-最後一行]。也可以使用正規表示式來選擇行,比如'/正規表示式/d',則將對符號正規表示式的行進行刪除動作。function有如下操作:

c:替換。c的後面必須接字串,這些字串將替換n1,n2之間的行,即刪除行[n1,n2],然後在n1-1後面寫入這些字串

d:刪除。刪除行[n1,n2]

p:列印。將選擇的資料列印出來,就是顯示在螢幕上。通常與-n一起

s:替換。直接進行替換工作,可以使用正規表示式,例如'1,20s/old/new/g'

關於對function的作用範圍,測試表明:

使用a來增加多行:在每一行後面都必須使用反斜槓「\」來進行新行的增加,例如:test.txt中本來只有一行:this is a test file.,然後使用a增加了三行

使用sed刪除空行:sed -i '/^$/d' filename,解釋:-i表示直接修改檔案而不在螢幕上顯示,/^$/使用的是正規表示式,在正規表示式中^表示行首,$表示行尾,行尾與行首之間沒有東西則是空行,d表示刪除。

sed命令有乙個查詢替換功能:

sed 's/要被替換的字串/新的字串/g'    filename

其中,要「被替換的字串」是使用正規表示式的,而對於「新的字串」那肯定就是普通的字元。下面是我做的一些測試。

Linux常用命令sed

1.在特定行前後插入特定內容 str1 public static config array str2 public var dump line var dump line 行後插入 sed i str1 a str2 file 行前插入 sed i str1 i str2 file 正常的插入表示...

Sed 常用命令

1 sed 變數替換 ipp 1.1.1.1 將synrecvd文字中的1.1.1.1都清除 並且刪除空行 echo ipp sed i s ipp g d synrecvd 2 sed 使用條件語句 修改文字,但不能插入一行資料 root a cat c aaabbb cccddd eeefff ...

sed常用命令

toc sed是以行為單位的文字處理工具 sed命令作用a 在匹配項後面加入文字 c字元轉換 d刪除行 d刪除第一行 i在匹配行前面加入文字 h複製模板塊的內容到儲存空間 h追加模板塊的內容到儲存空間 g將儲存空間的內容複製到模式空間 g將儲存空間的內容追加到模式空間 n讀取下乙個輸入行,用下乙個命...