Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File Grep以匹配外部文件的模式_File_Design Patterns_Grep_External - Fatal编程技术网

File Grep以匹配外部文件的模式

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

我正在寻找像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 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很高兴听到它帮助了你:)