用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.