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

如何使用sed检查没有特定内容的行?,sed,Sed,我制作了一个名为toy的玩具文件,其内容如下: aaa bbb 我的第一个想法是使用: $ sed -n '/[^a]/ p' toy bbb 它打印出bbb,但当我添加“bb ab”时 到玩具文件的末尾。我发现它失去了力量 $ sed -n '/[^a]/ p' toy bbb bb ab 如何使用图案扫描整行?您可以使用以下方法之一打印不匹配的行: sed -n '/pattern/!p' toy sed '/pattern/d' toy 从。我不太确定我是否正确理解了这个问题。。。

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

aaa
bbb
我的第一个想法是使用:

$ sed -n '/[^a]/ p' toy
bbb
它打印出bbb,但当我添加“bb ab”时 到玩具文件的末尾。我发现它失去了力量

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

如何使用图案扫描整行?

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

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

从。

我不太确定我是否正确理解了这个问题。。。你到底想要实现什么

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

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

sed '/a/d' toy 

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

你真的想模仿grep-v吗?@cbuckley,没有,还没有深入研究grep。看起来不错,但我不知道如何使用它,我用我的理解力试过,但没有找到一个可行的计划。这将提出另一个问题来取代当前的问题。你知道怎么用它来处理这个问题吗?呃。。。发布了一个dup。回答。。。删除+你觉得我会被否决。但是,请您自己试一试使用“sed-n'/[^a]/d'toy”到玩具文件中得到了什么。@Zen因为
/[^a]/
表示“匹配包含任何非a字符的行”,并且
bb ab
匹配该行。听起来像是要“匹配不包含a的行”,这是不同的。@Zen:如果同时使用-n和d(delete)修饰符,则无法打印任何内容-n表示“除非我告诉你,否则不要打印”(使用“p”)。我想排除包含“a”的行,无论有多少行,在我现在想到的地方,我都可以使用“a\+”在这里指定一个或多个a。谢谢你,伙计。这里不必使用+量词。