File Grep以匹配外部文件的模式
我正在寻找像unix grep这样的东西,它可以从外部文件中获取模式 我在patterns.txt文件中有一个模式列表,如下所示(但有更多条目): 还有另一个名为to_search_on.txt的文件,我只需要保留与patterns.txt匹配的行。 这是在.txt文件上搜索(但有更多条目): 我该怎么做?File Grep以匹配外部文件的模式,file,design-patterns,grep,external,File,Design Patterns,Grep,External,我正在寻找像unix grep这样的东西,它可以从外部文件中获取模式 我在patterns.txt文件中有一个模式列表,如下所示(但有更多条目): 还有另一个名为to_search_on.txt的文件,我只需要保留与patterns.txt匹配的行。 这是在.txt文件上搜索(但有更多条目): 我该怎么做? 谢谢您可以使用-f选项从文件中读取模式 $ grep -f patterns.txt to_search_on.txt pencod,3466.55,1 如需了解更多信息,man grep
谢谢您可以使用
-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.
您可以使用
-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.
您可以使用
awk
awk -F, 'FNR==NR {a[$0]++;next} ($2 in a)' patterns.txt to_search_on.txt
pencod,3466.55,1
只有在第二个字段中找到模式(除以,
)它将
patterns.txt
文件存储在数组a
中,然后根据对其进行测试,以便在.txt上搜索您可以使用awk
awk -F, 'FNR==NR {a[$0]++;next} ($2 in a)' patterns.txt to_search_on.txt
pencod,3466.55,1
只有在第二个字段中找到模式(除以,
)
它将patterns.txt
文件存储在数组a
中,然后根据对其进行测试以搜索.txt
在这个简单的输入中可能没有问题,但如果行有更多的编号呢grep
将只搜索整行的模式匹配,而不仅仅是第二个字段。@Jotne是的,这是使用grep的一个缩影,但如果文件格式如示例所示,则可能会起作用。但是你的答案更具体了+1:)谢谢,+1为你的简单:)效果非常好!!thanx@user3851412很高兴听到它对您有所帮助:)在这个简单的输入中可能还可以,但若这行有更多的数字呢grep
将只搜索整行的模式匹配,而不仅仅是第二个字段。@Jotne是的,这是使用grep的一个缩影,但如果文件格式如示例所示,则可能会起作用。但是你的答案更具体了+1:)谢谢,+1为你的简单:)效果非常好!!thanx@user3851412很高兴听到它帮助了你:)