2014-01-06 74 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

回答