2014-01-06 50 views
0

尝试使用来自一个文件的模式grep并在大的文件上使用它们,然后将结果保存到内部具有模式名称和grep输出的文件不起作用,创建空文件。grep模式并保存到具有模式名称的文件

我做错了什么?

while read p; do 
grep $p big.txt >>$p 
done < patterns.txt 
+0

什么是'patterns.txt'文件?如果它包含带空格的名称,则可能有问题。 – fedorqui

+0

'-f'选项从文件中读取模式:'grep -f patterns.txt big.txt >> output'但是如果你需要一个不同的文件foreach模式,那么你给了自己一个解决方案,除了你必须小心阅读模式包含的内容(斜线,空格,...)。那么,如果一个模式不匹配,当然你会有empy文件。试试'-c'选项来计算匹配次数;如果文件包含“0”(匹配),则表示您的模式不匹配输入的任何行。 – ShinTakezou

+0

模式文件包含简单的单词列表,二级域名,不含斜杠点空格等,单词,带连字符的单词。使用-f标记空文件。 – user1983793

回答