1.替换
sed -i '.bak' 's/oldtxt/newtxt/' filename
* oldtxt 原文本
* newtxt 新文本
2.插入
sed -i ‘.bak’ '28i\'$'\ninsert_text\n' filename
* 28 插入行
* InsertTxt 插入的文本
如果行号和插入文本都是变量,需要下面这种方式来操作:
sed -i '' ''"${line_num}"'i\
'"${insert_text}"'\
' filename
注意事项:
sed -i
在linux和mac中实现方式不同,会出现linux中执行通过的脚本在mac中不生效。
在mac中,sed 命令直接操作文件的时候,必须指定备份的格式,而在 linux 上,没有这个要求。
sed -i '' 's/hello/world/g' hello.php
-i
之后加上一对引号指定备份格式,如果不需要备份,引号可为空。
网友评论