sed使用起來,感覺跟awk也有點類似,也可以理解成匹配一個模式,然後執行相應的動作。但是這個模式可以是Regex匹配的模式,也可以是特定的某些行。但是匹配後可以執行的動作確實是sed的一大亮點,其幾乎能完成一個文字編輯器所實現的功能。比如增加,刪除等操作。其命令的字和vim的還是比較相似的。
d:用於刪除
s:用於替換
選定行:例如‘1,5’ ‘/abc/,./fgh/’
e:執行多個命令,例如sed '-e s/a/A/g' -e 's/b/B/g'
r:從檔案中讀取內容,並增加到匹配的行後面
w:將所有匹配的內容,寫入檔案中
a\:追加文本到匹配的行的下一行
i\:插入文本到匹配的行的前一行
n:對匹配的檔案的下一行進行操作,例如/match/{n;s/abc/def/g}
練習:
cat test_sed
1.把Steve的名字改成Jon
sed 's/Steve/Jon/g' test_sed
2.刪除頭三行
sed '1,3d' test_sed
3.顯示5-10行
sed -n 1,5p test_sed
4.刪除包含Lane的行.
sed -n /Lane/d test_sed
5.顯示生日在November-December之間的行
sed -n '\#:1[12]/#p' test_sed
6.把三個星***添加到含Fred的行
sed -n '/Fred/ s/$/***/p' test_sed
7.用JOSE HAS RETIRED取代包含Jose的行
sed -n 's/Jose/JOSE HAS RETIRED/gp' test_sed
8.把Popeye的生日改1/14/46
sed -n '/Popeye/ s#[0-9]*/[0-9]*/[0-9]*#1/14/46#gp' test_sed
9.刪除空白行
sed '/^$/d' test_sed
10.在20到30前加#號
sed '1,20 s/^/#&/g' test_sed