我正在寻找类似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
我该怎么做? 感谢
答案 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
进行测试