Shell-Script
在多個文件上執行命令
我有一個包含許多文件的文件夾(xyz1、xyz2,一直到 xyz5025),我需要在每個文件上執行一個腳本,獲取 xyz1.faa、xyz2.faa 等作為輸出。
單個文件的命令是:
./transeq xyz1 xyz1.faa -table 11
有沒有辦法自動做到這一點?也許是一個待辦事項組合?
for file in xyz* do ./transeq "$file" "${file}.faa" -table 11 done
這是一個簡單的
for
循環,它將遍歷以xyz
目前目錄開頭的每個文件,並./transeq
以文件名作為第一個參數呼叫程序,文件名後跟“.faa”作為第二個參數,然後是“-table 11” .
如果您安裝GNU Parallel,您可以像這樣並行執行它:
parallel ./transeq {} {}.faa -table 11 ::: xyz*
如果你的程序是 CPU 密集型的,它應該會加速很多。