使用sed删除与多个模式匹配的行

时间:2014-02-20 08:00:39

标签: sed awk

我正在尝试删除一些匹配某些正则表达式的行。

curl <url> | sed '/\(foo\|bar\|baz\)/d'

我不希望任何这些行显示匹配foo,bar或baz

它在foo上停止

如果使用awk更容易,我就可以了。

4 个答案:

答案 0 :(得分:1)

或者使用egrep:

curl <url> | egrep -v "foo|bar|baz"

答案 1 :(得分:0)

尝试

curl <url> | sed '/foo\|bar\|baz/d'

这里也看到很多很近的例子: http://www.theunixschool.com/2012/06/sed-25-examples-to-delete-line-or.html

答案 2 :(得分:0)

使用awk

curl <url> | awk '!/foo|bar|baz/'

答案 3 :(得分:0)

这可能适合你(GNU sed):

sed '/foo/{/bar/{/baz/d}}' file

或:

sed '/foo/!b;/bar/!b;/baz/d' file