Grep匹配外部文件的模式

时间:2014-11-26 09:39:20

标签: file design-patterns grep external

我正在寻找类似unix grep的东西,它可以从外部文件中获取paterns。

我在这样的文件patterns.txt上有一个模式列表(但有更多条目):

234523.34
623253.45
3466.55

还有一个名为to_search_on.txt的文件,我只需要保留与patterns.txt匹配的行。 这是to_search_on.txt文件(但有更多条目):

kaosar,23443.44,0
ratro,2423545,0
pencod,3466.55,1

我该怎么做? 感谢

2 个答案:

答案 0 :(得分:2)

您可以使用-f选项从文件中读取模式

$ grep -f patterns.txt to_search_on.txt
pencod,3466.55,1

有关详细信息,man grep可以为您提供

  -f FILE, --file=FILE
              Obtain patterns from FILE, one per line.  The empty file contains zero patterns, and therefore matches nothing.

答案 1 :(得分:1)

您可以使用awk

awk -F, 'FNR==NR {a[$0]++;next} ($2 in a)' patterns.txt to_search_on.txt
pencod,3466.55,1

如果在第二个字段中找到模式(除以,),这只会给出命中 它将patterns.txt文件存储在数组a中,然后针对to_search_on.txt进行测试