2つのファイルを入力としてプログラムを実行し、abc0000.faa/abc0000.fnaからabc6000.faa/abc6000.fnaまで6000個のファイルを含む1つの出力が必要です。また、入力と同じファイル名を持つが拡張子が.pamlの出力ファイルが必要です。
これはファイル 0000 の完全なコマンドの例です。
./pal2nal.pl abc0000.faa abc0000.fna -codontable 11 -output paml > abc0000.paml
すべてのファイルに対して同じコマンドを自動的に実行する方法はありますか? 「for-in-do」のようなものですか?
ありがとうございます!
答え1
一連の入力ファイル(.faa
ファイルなど)を繰り返して、他の入力ファイルと出力ファイル名を生成できます。
for f in *.faa; do
./pal2nal.pl "$f" "${f%.faa}.fna" -codontable 11 -output paml > "${f%.faa}.paml"
done
この${f%word}
構文は、最短の末尾コンポーネントの一致を削除しますword
。
答え2
注文する
seq -w 0 6000
0から6000までのすべての数字が生成されます。数字が4桁未満の場合、左側は0で埋められます。コマンド置換を使用して、コマンドをforループにラップできます。
for n in $(seq -w 0 6000) ;do
./pal2nal.pl abc$n.faa abc$n.fna -codontable 11 -output paml > abc$n.paml
done