디렉토리의 모든 파일에 명령 적용

디렉토리의 모든 파일에 명령 적용

현재 디렉토리의 모든 파일에 다음 명령을 적용하고 싶습니다

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

for 루프를 사용하고 파일 확장자로 globbing을 사용할 수 있습니다.

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  \;

관련 정보