2014-05-07 61 views
0

在Mac計算機附帶的默認Unix環境中工作。環境包含以下內容:Bash使用存儲在文件中的模式執行多個grep搜索

  • 1文件,是我想要的搜索模式使用
  • 10個左右.tsv格式文件中使用單獨搜索每個搜索模式的〜250詞的列表
  • 1文件與搜索追加結果

我想運行下面的腳本:

for file in *.tsv; 
do 
echo "Processing $file"; 
grep -n PATTERN $file | cut -f 1,2,3 >> Results_File.lst; 
done 

但我不知道如何重複運行腳本來存儲在一個單獨的文件中的多個模式。

下面是模式文件的一小部分:

AXDND1 
    BAZ2B 
    BBS10 
    BRIP1 
    etc 

回答

1

你不需要for循環。您可以將*.tsv glob傳遞給grep,它將搜索所有這些文件。如果您通過選項-f pattern.txtgrep它將搜索pattern.txt中的所有模式。

下面的命令應該做的全部工作:

grep -n -f pattern.txt *.tsv | cut -f 1,2,3 >> Results_File.lst 

檢查man grepgrep進一步的解釋和它的選項。