2011-12-24 84 views
1

我想從我的文本文件中刪除不需要的行有特定的詞。我已經使用grep -v像這樣使用grep從文本文件中刪除多行

grep -v 'error|fault|unkownn' input.txt > out.txt 

它使用一個字而不是多個字。我錯過了什麼?

+1

我認爲這是已經在這裏回答:http://stackoverflow.com/questions/364105/using-grep-with-regular-expression-to-filter- out-matches,不是嗎? – jstarek 2011-12-24 20:21:49

+0

@jstarek你是對的,我已經搜索了1小時所以找不到它,我不知道爲什麼它隱藏起來:)。謝謝你的幫助!! – raindrop 2011-12-24 20:33:10

回答

3

|僅當grep正在工作擴展正則表達式模式時才被視爲正則表達式字符。所以,你需要做以下之一:

# Escape the | so that it's treated as a regex control character 
grep -v 'error\|fault\|unkownn' input.txt > out.txt 

# -E enables extended regex mode 
grep -vE 'error|fault|unkownn' input.txt > out.txt 

# egrep = grep -E 
egrep -v 'error|fault|unkownn' input.txt > out.txt 
+0

非常感謝你! – raindrop 2011-12-24 20:31:11

+0

**歡迎來到StackOverflow **。請記住通過按[複選標記](http://i.imgur.com/uqJeW.png)接受最能解決您問題的答案(如果有的話)。當你看到好的問答時,使用[灰色三角形](http://i.imgur.com/kygEP.png)進行投票。請注意,賦予其他人的聲望點並不意味着對聲譽點的扣除(除非您已發佈獎金) – 2011-12-25 09:06:54