sed 的-i选项是就地修改的功能,它会将模式空间的内容直接写入磁盘文件,原始的文件就会覆盖,其实-i 选项是支持备份的功能,同时会取消模式空间的输出,使用命令如下。
sed -isuffix "command" file #suffix是给备份文件设定的后缀。
使用实例:在对a.txt文件就地修改之后,出现了a.txt_bak 文件,它是执行sed操作之间的a.txt中的文件。
sed操作支持对文件行的定地修改,遇到了如下问题: sed -n "$s/hello/nihao",却无法匹配到最后一行,$明明是普通正则元字符呀。后来才发现我是用的" " 双引号,日了狗了,这时候直接对$转义即可,后者将" "换成 ' '也可以达到同要的效果。
sed -n "\$s/hello/nihao/g" #\转义字符
sed -n '$s/hello/nihao/g' #
awk和sed命令默认的操作部分,都是用 ' '单引号引起来,就是防止shell对其中内容进行解释,因为这两个命令都是要运行在shell环境中,所以写在awk sed中的命令,要先经过shell解析,在交由相应的的命令程序执行。