2013-05-29 2 views
0

일치하는 파일 집합을 For 루프와 파일 디렉토리를 통해 결합하려고합니다.Bash For 루프 동일한 이름의 여러 입력 파일이있는 경우

파일 이름은 samename.csfasta 및 samename.qual과 같으며 확장명 만 다릅니다. 프로그램을 실행하는

명령은 다음과 같습니다 나는 온라인으로 예를 찾고있다하지만 하나를 발견하지 않았습니다

solid2fastq samename.csfasta samename.qual -o samename 

. 하나의 입력이 있다면

:

for f in $FILES 
do 
    echo "Processing $f file....." 
    solid2fastq $f -o $f 

done 

TIA

+0

나는 이해하지 못한다. 스크립트 입력은 어떻게 생겼습니까? $ FILES은 무엇입니까? –

+0

그래서 스크립트의 시작 부분에서 파일과 함께 폴더로 이동합니다. 파일 = ~/폴더/폴더/* 나는 그 것을 포함하지 않았다. pipi의 대답을 사용하여 스크립트의 파일이있는 디렉토리로 이동합니다. –

답변

2

파일 (.cfasta.qual)이 코드처럼 다음 결합하는 경우

FILES=(*.csfasta) 
for f in "${FILES[@]}" 
do 
    base=$(basename "$f" .csfasta) 
    echo "Processing $f file....." 
    solid2fastq "$f" "${base}.qual" -o "$base" 
done 

에 따라 유용 할 것이다.

+0

달콤한! 고마워. 그 일하는!! –

관련 문제