Aplica o comando a todos os arquivos em um diretório

1

Eu quero aplicar o seguinte comando a todos os arquivos no diretório atual

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

Eu também quero que o nome do arquivo de saída seja o mesmo da entrada mais ".aln". Por exemplo:

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

Obrigado pela ajuda!

    
por Manuel 10.08.2017 / 21:01

1 resposta

3

Você poderia usar para loop e globbing por extensão de nome de arquivo:

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

Se você quiser usar um único comando, use find :

find . -maxdepth 1 -type f -iname "*.fna" -exec clustalw -infile {} -outfile {}.aln  \;
    
por 10.08.2017 / 21:06