如何使用sed检查没有特定内容的行?

时间:2014-06-25 11:09:40

标签: sed

我制作了一个名为toy的玩具文件,其内容如下:

aaa
bbb

我的第一个想法是使用:

$ sed -n '/[^a]/ p' toy
bbb

打印出bbb,但是当我添加' bb ab' 到玩具文件的末尾。我发现它失去了力量

$ sed -n '/[^a]/ p' toy
bbb
bb ab

我应该如何用模式扫描整条线?

2 个答案:

答案 0 :(得分:2)

您可以使用以下方法之一打印不匹配的行:

sed -n '/pattern/!p' toy
sed '/pattern/d' toy

来自Handy one-liners for sed

答案 1 :(得分:1)

我不太确定我是否正确理解了这个问题......你想要实现的是什么?

无论如何,您使用的正则表达式将打印出包含非“a”字符的任何行。因此,将跳过由“a”字符组成的行。

如果要过滤掉包含a的行,则必须采用不同的方式:

sed '/a/d' toy 

这将删除任何包含“a”的行,其他所有行都将被打印。