2014-02-20 103 views
0

我試圖刪除與某些正則表達式匹配的幾行。刪除使用sed匹配多個模式的行

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

我不希望任何這樣的線都表明匹配FOO,酒吧或巴茲

停止對富

,如果這是使用awk容易,我行與。

+0

你的意思是 「我不希望任何這樣的線都表明匹配FOO,酒吧_and_巴茲」? – potong

+0

您的sed在我的env(CGYWIN) – BMW

回答

1

或用egrep的:

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

嘗試

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

在此還看到很多很多接近的例子: http://www.theunixschool.com/2012/06/sed-25-examples-to-delete-line-or.html

+0

中正常工作,它實際上按預期工作。該文檔說,它首先匹配正則表達式。我需要使它變得貪婪,但是/ g沒有奏效。 – chovy

+0

你可能會發現這裏的一些東西http://stackoverflow.com/questions/5410757/sed-delete-a-line-containing-a-specific-string helpfull。 – epeleg

+0

修改了我的答案... – epeleg

0

使用awk

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

這可能爲你工作(GNU SED):

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

或:

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