2011-08-11 19 views
19

假設有一個大的文本文件,我想只打印與某些模式不匹配的行。很明顯,我可以使用egrep -v 'patter1|pattern2|pattern3。現在如果所有這些模式都在一個文本文件中呢?從文件中製作egrep讀取模式的最佳方法是什麼?如何使文件中的「grep」讀取模式?

+0

請注意,有時您需要跳過'|'...例如, 'grep'pattern1 \ | pattern2 \ | pattern3'' – vikingsteve

回答

28
grep -v -f pattern_file 
+0

爲了將來的參考:刪除'-v'並且只需使用'cat myfile | grep -f pattern_file'而不是**來保留符合模式的行**模式文件。 – Basj

+0

咦?這不是OP要求的。此外,**不** **''成''grep' - 只需指定'myfile'作爲'grep'的參數。 – lingfish

+0

@lingfish你應該說明你的評論是指Basj的評論,而不是我的答案...... – TMS

5

egrep有一個-f選項,它的確如此:您指定一個文件,並從該文件讀取模式,每行一個。

相關問題