sed的基本用法
send:行編輯器(全屏編輯器:vi)
sed模式空間
默認不編輯源文件,僅對模式空間中的數據做處理:而後,處理結束後,將模式空間打印之屏幕
sed [options] 'AddressCommand' file...
-n:靜默模式,不再打印不匹配的行
-i:直接修改源文件,使用前請確認能否需要修改內容是否正確
-e SCRIPT -e SCRIPT:可以同時執行多個操作
-f /PATH/SED_SCRIPT:
-r:表示使用擴展正則表達式
Address
1、StartLine Endline
比如1,100
$:最後一行
2、/RegExp/
/^root/
3、/pattern1/,/pattern2/
第一次被pattern1匹配到的行開始,至第一次被pattern2匹配到的行結束,這中間的所有行
4、LineNumber
指定行
5、StartLine,+N
從startLine開始,向後的N行
Command:
d:刪除符合條件的行:sed '1,2d' /etc/fstab 刪除1 2 行
p:顯示符合條件的行:sed '/root/p' /etc/fstab 打印包含root的行
a \string:在指定的行後追加新行,內容爲string
sed '/^\//a \#hello world \n#hello world' /etc/fstab
i \string:在指定的行前面添加新行,內容爲string
r FILE:將指定的文件的內容添加至符合條件的行處
sed '2r /etc/issue' /etc/fstab #
w FILE:將指定範圍內的內容另存吃指定的文件中。
sed '/oot/w /tmp/oot.txt' /etc/fstab
s/patten/string/修飾符:查找並替換,默認之天幻每行中第一次被模式匹配到的字符串
加修飾符
g:全局替換
i:忽略字符大小寫
sed 's/oot/OOT/' /etc/fstab
&:引用模式匹配整個串