複数のファイルに対して複数の入力を使用してコマンドを実行する

複数のファイルに対して複数の入力を使用してコマンドを実行する

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

おすすめ記事