web-dev-qa-db-ja.com

ディレクトリ内のすべてのファイルにコマンドを適用します

次のコマンドを現在のディレクトリ内のすべてのファイルに適用したい

clustalw -align -infile=*here goes the input filename* -outfile=*here goes the output filename*

また、出力ファイル名を入力に「.aln」を加えたものと同じにします。例えば:

clustalw -align -infile=nexus0000.fna -outfile=nexus000.fna.aln

助けてくれてありがとう!

1
Manuel

ファイル名拡張子によるforループとグロブを使用できます。

for file in *.fna; do
    clustalw -align -infile="$file" -outfile="$file.aln"
done

単一のコマンドを使用する場合は、findを使用できます。

find . -maxdepth 1 -type f -iname "*.fna" -exec clustalw -infile {} -outfile {}.aln  \;
4
sebasth