用sed删除匹配行

用sed删除匹配行:

sed ‘/toMatch/d’ filename

也就如此而已,多了个/ /去匹配某一行,再执行删除,如此而已。

在sed中,一看到有两个成对的//,就是要进行匹配了,匹配后干什么?那看你想让它干什么,想删除匹配行,就输入d,

想在匹配行下新增一行就输入a,像这样:sed '/toMatch/aIm comming'. a是append的意思。

想在匹配行上新增一行就输入i,像这样: sed '/toMatch/iIm comming'. i是insert的意思。

 

问题来了,为什么sed设计成用/ /去匹配,而不用()或者{}或者[]去匹配呢?答案也很简单,因为那些符号输入不方便。

 

注意的是,上面的例子都是操作sed缓冲区,不影响原始文件的物理改动。如果想要真正的修改源文件,加上参数i就可以了

 

sed -i 'toMatch/d' filename.

posted @ 2020-08-06 11:26  福尔  阅读(8885)  评论(1编辑  收藏  举报