正則表達式3
sed
cat -n test | sed '/good/ a this is append by good!'
cat -n test | sed '/good/ i this line is insert by bood'
sed -n '2,/is/'p test 顯示出匹配到的內容
sed -n '/good/=' test 打印出匹配到good的行號
如果需要對同一文件或同一行進行多次修改,可以有三種方法
實操
第一種
sed -n -e '/glad/=' -e '/glad/p' test 同時打印出匹配到的glad行號和內容
第二種
sed '/glad/=;/glad/p' test 效果同上
第三種
sed -n '
>/glad/=
>/glad/p' test
效果同上
替換操作
sed -e 's/is/IS/' -e 's/am/WAS/' test 同時將所有的is替換爲大寫is,將am替換爲WAS
sed 's/is/IS/g;s/am/WAS/' test 效果同上
sed '
>s/is/IS/g
>s/am/WAS/' test
創建sed腳本
實操
tmp目錄下新建一個tst.sed文件
vi tst.sed
#!/bin/sed -f
/good/ a\
this line is append by good
保存退出
然後給tst.sed 賦予可執行權限
chmod u+x tst.sed
./tst.sed test 執行腳本對test文件操作,返回正確結果
腳本插入操作
vi tst.sed
將之前內容註釋掉
寫入
/sbin/ i this line is insert by sbin
保存退出
./tst.sed test 執行插入操作,返回正確結果
或執行
sed -f tst.sed test 效果和./tst.sed test 一樣
將之前tst.sed中註釋的內容解除註釋仍可以執行腳本
替換問題
實操
sed 's/is/IS/gw test' test 這裏w參數的作用是將團替換的結果輸出到test文件中,改變了test文件
圖中列舉了所有的sed相關參數功能,其它未用到的參數可自行測試和練習