我試圖從基於正則表達式的目錄中的許多文件打印特定的行。我有一個文件名列表和一個包含這些文件的目錄。我只能弄清楚如何打印目錄中所有文件的行。但我需要的只是來自filename.txt列表中文件的打印行。根據文件名列表從目錄中的文件打印一些行
for f in ForPAML/*.paml; do grep -m 1 'Mm10' "$f"; done
我用上面的命令來打印目錄中所有文件都有Mm10的行。
FILENAME.TXT樣子:
Mus_Rn5_.02.aa.fa.afa.paml
Mus_Rn5_.03.aa.fa.afa.paml
Mus_Rn5_.04.aa.fa.afa.paml
Mus_Rn5_.07.aa.fa.afa.paml
而且該目錄包含這些文件加上許多。
而文件Mus_Rn5_.03.aa.fa.afa.paml例如看起來像這樣。
2 54
Mm10-chr19:41729055-41729126
ACACTCGAAGCTGCTGGCCAGCAAAGTCATTCTTGTGGATCCGAGTGTTGTTGC
1:268429604-268429675
ACACTCGAAGCTGCTGCCCAGCAAAGTCATTCTTATGGATCCGAGTATTGTTAC
我需要打印包含「MM10」與文件名到一個新的文件一起行。事情是這樣的 Mus_Rn5_.02.aa.fa.afa.paml
Mm10-chr19:41729055-41729126
Mus_Rn5_.03.aa.fa.afa.paml
Mm10-chr11:34068938-34068969
Mus_Rn5_.04.aa.fa.afa.paml
Mm10-chr11:34069868-34069905
...
此外,文件的目錄中的數量實在是太多了,所以我結束了「參數列表太長」的錯誤,那就是原因我使用了'for'循環似乎工作。
前綴代碼/數據有四個空格。請看[編輯幫助](http://stackoverflow.com/editing-help)。 – Cyrus