sed -i以及“ “ 的$匹配不到最后一行的问题

        sed 的-i选项是就地修改的功能,它会将模式空间的内容直接写入磁盘文件,原始的文件就会覆盖,其实-i 选项是支持备份的功能,同时会取消模式空间的输出,使用命令如下。

sed -isuffix  "command" file  #suffix是给备份文件设定的后缀。

使用实例:在对a.txt文件就地修改之后,出现了a.txt_bak 文件,它是执行sed操作之间的a.txt中的文件。

sed -i以及“ “ 的$匹配不到最后一行的问题_第1张图片

sed操作支持对文件行的定地修改,遇到了如下问题: sed -n "$s/hello/nihao",却无法匹配到最后一行,$明明是普通正则元字符呀。后来才发现我是用的" " 双引号,日了狗了,这时候直接对$转义即可,后者将" "换成 ' '也可以达到同要的效果

sed -n "\$s/hello/nihao/g"         #\转义字符
sed -n '$s/hello/nihao/g'        #

sed -i以及“ “ 的$匹配不到最后一行的问题_第2张图片

awk和sed命令默认的操作部分,都是用 '  '单引号引起来,就是防止shell对其中内容进行解释,因为这两个命令都是要运行在shell环境中,所以写在awk sed中的命令,要先经过shell解析,在交由响应的命令程序执行。

你可能感兴趣的:(linux,系统命令以及工具,linux)