1.替換
sed -i '.bak' 's/oldtxt/newtxt/' filename
* oldtxt 原文本
* newtxt 新文本
2.插入
sed -i ‘.bak’ '28i\'$'\ninsert_text\n' filename
* 28 插入行
* InsertTxt 插入的文本
如果行號(hào)和插入文本都是變量士聪,需要下面這種方式來(lái)操作:
sed -i '' ''"${line_num}"'i\
'"${insert_text}"'\
' filename
注意事項(xiàng):
sed -i
在linux和mac中實(shí)現(xiàn)方式不同,會(huì)出現(xiàn)linux中執(zhí)行通過的腳本在mac中不生效蝗碎。
在mac中湖笨,sed 命令直接操作文件的時(shí)候,必須指定備份的格式蹦骑,而在 linux 上慈省,沒有這個(gè)要求。
sed -i '' 's/hello/world/g' hello.php
-i
之后加上一對(duì)引號(hào)指定備份格式眠菇,如果不需要備份辫呻,引號(hào)可為空。