[Linux]sed命令
阿新 • • 發佈:2021-06-10
[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