【发布时间】:2011-10-25 00:47:48
【问题描述】:
假设有一个大文本文件,我想只打印与某些模式不匹配的行。显然,我可以使用egrep -v 'patter1|pattern2|pattern3。现在,如果所有这些模式都在一个文本文件中怎么办?使egrep 从文件中读取模式的最佳方法是什么?
【问题讨论】:
-
请注意,有时您需要转义
|... 例如grep 'pattern1\|pattern2\|pattern3'
假设有一个大文本文件,我想只打印与某些模式不匹配的行。显然,我可以使用egrep -v 'patter1|pattern2|pattern3。现在,如果所有这些模式都在一个文本文件中怎么办?使egrep 从文件中读取模式的最佳方法是什么?
【问题讨论】:
|... 例如grep 'pattern1\|pattern2\|pattern3'
grep -v -f pattern_file
【讨论】:
-v,如果您想保留与模式文件中的模式匹配的行,只需使用cat myfile |grep -f pattern_file。
cat不转换为grep 更有效——只需将myfile 指定为grep 的参数即可。
egrep 有一个 -f 选项可以做到这一点:你指定一个文件,它会从该文件中读取模式,每行一个。
【讨论】: