1. 程式人生 > 其它 >[Linux]sed命令

[Linux]sed命令

[Linux]sed命令

目錄

命令介紹

格式:sed [-nefr] [動作]

選項與引數:

選項 含義
-n 使用silent模式,只有sed特殊處理的行才會被列出。
-e 直接在指令列模式上進行sed的動作編輯。
-f 直接將sed的動作寫在一個檔案內,-f filename
-r,-E 使用正則語法
-i 直接修改讀取的檔案內容,而不是由螢幕輸出。(危險操作)

動作說明:[n1[,n2]]function

n1,n2:可選項,一般用於選擇進行動作的行數

有以下的function

  • a:新增,後接字串,這些字串會在指定行的下一行出現。
  • c:取代,後接字串,將指定行的字元替換。
  • d:刪除,刪除指定行。
  • i:插入,後接字串,這些字串會在指定行的上一行出現。
  • p:列印,通常搭配-n一起用。
  • s:取代,通常搭配正則表示。

命令示例

  • 增加,a
    在第二行後增加i'm skybiubiu並輸出。
nl /etc/passwd | sed "2a i 'm skybiubiu"
  • 刪除,d

    去掉2~5行輸出。

nl /etc/passwd | sed '2,5d'
  • 取代,c

    將2~5行取代為i'm skybiubiu列印輸出。

nl /etc/passwd | sed "2,5c i'm skybiubiu"
  • 列印,p

    搭配-n,輸出1~5行的內容。

nl /etc/passwd | sed -n '1,5p'
  • 搜尋並取代,s

    只將輸出內容中匹配的部分替換,不會修改原始檔。

sed 's/AAAAA/BBBBB/' /tmp/test.txt
  • 修改檔案內容(危險操作), -i

    該操作會直接修改原檔案內容,比較危險,建議先備份。

sed -i 's/AAAAA/BBBBB/' /tmp/test.txt
sed -i '$a CCCCC' /tmp/test.txt