Linux 中,sed 可以實現替換或者插入等功能,用法簡單歸納一下。
1,要替換一些文字時,用”/”把各部分隔開;
sed -i 's/原內容/新內容/g' 文件
注意:原內容可以是一整行,也可以是一行中的某一段。
2,要替換時,如果“原內容”或“新內容”中含有特殊字符(比如”/”或者”#”等),可以使用其它符號把各部分隔開,比如以下幾種格式都是正確的
sed -i 's,原內容,新內容,g' 文件
sed -i 's#原內容#新內容#g' 文件
sed -i 's:原內容:新內容:g' 文件
sed -i 's~原內容~新內容~g' 文件
3,要插入新一行內容時,寫法:
sed -i '/原行內容/a要添加的新一行內容' 文件
注意:a表示append,後面不需要添加符號。如果“原行內容”沒有輸入完整,比如只輸入了開頭一部分,那麼新的內容仍將插入下一行。
在第325行以後插入新一行內容時,寫法
<CODE>sed -i '325a要添加的新一行內容' 文件</CODE>
4,某些轉義符可能有特殊含義,如\t表示一個縮進。以下這些轉義,適用於sed和echo
\n 表示新的一行
\r 表示回車
\t 表示水平制表符
\v 表示垂直制表符
\b 表示後退符
\a 表示"alert"(蜂鳴或者閃爍)
\0xx 轉換為八進制的ASCII碼
=========================================
以下是一些例子
1,普通替換寫法
把 I love cake 替換成 You love apple,寫法:
sed -i 's/I love cake/You love apple/g' aaa.txt
2,普通替換寫法(含特殊字符的處理)
如果替換的文字中含有特殊字符,比如把 /usr/local/php.ini 替換成 /etc/php.ini,寫法:
sed -i 's/\/usr\/local\/php.ini/\/etc\/php.ini/g' aaa.txt #加上"\"作為轉義符,不推薦sed -i 's,/usr/local/php.ini,/etc/php.ini,g' aaa.txt #使用其它符號隔開,推薦!sed -i 's#/usr/local/php.ini#/etc/php.ini#g' aaa.txt #使用其它符號隔開,推薦!
3,在特定行號後插入一行
要在第25行以後插入一行新的內容I love apple(插入內容將變成第26行),寫法:
sed -i '25aI love apple' aaa.txt sed -i '25a\I love apple' aaa.txt #沒有特殊字符時,加與不加轉義符,效果都一樣
要在第25行插入一行新的內容 /usr/local/php.ini,寫法:
sed -i '25a/usr/local/php.ini' aaa.txt #需要加入轉義符
4,在特定內容後插入一行
假設某一行的內容為 I love apple(不知道行號),要在這一行後面添加一行Do you love it,寫法:
# sed -i '/I love apple/aDo you love it' aaa.txt
5,替換某一行內容
要把第3行的內容徹底替換為zhukun.net pptpd passwd *,寫法:
sed -i "3s/.*/zhukun.net pptpd passwd */" aaa.txt
6,替換某一行內容
把以127.0.0.1開頭的行,替換為changed,這裡我們換一種使用變量的寫法:
var=127.0.0.1sed -i "/^$var/cchanged" aaa.txt
7,刪除某一行內容
刪除以[email protected]開頭的行:
sed -i "/^[email protected]/d" aaa.txt find . -name build.xml | xargs rm
在sed命令中引入shell變量 http://www.linuxidc.com/Linux/2014-03/97896.htm
Linux下Shell編程——sed命令基本用法 http://www.linuxidc.com/Linux/2013-06/85526.htm
Unix文本處理工具之sed http://www.linuxidc.com/Linux/2013-08/89315.htm
sed 高級用法 http://www.linuxidc.com/Linux/2014-09/106961.htm
sed命令詳解與示例 http://www.linuxidc.com/Linux/2014-11/109325.htm
Linux正則表達式sed 詳述 http://www.linuxidc.com/Linux/2015-04/116309.htm
Linux文本處理工具之sed http://www.linuxidc.com/Linux/2015-01/111436.htm