"for 루프"를 사용하여 디렉터리의 모든 파일에 대해 스크립트를 실행합니다.

"for 루프"를 사용하여 디렉터리의 모든 파일에 대해 스크립트를 실행합니다.

파일 디렉터리를 통해 실행하려는 스크립트가 있습니다.

awk '{if(NR%4==1) {printf(">%s\n",substr($0,2));} else if(NR%4==2) print;}' < TNGA_C_0hr_Joined_Asz1.fastqsanger | awk 'NR%2==0' | sed 's/TGAGATGTGA/*/p'  | cut -d '*' -f 2 -s | sort -k 1.180,1.194 -u | cat -n | sed 's/^/>/' | tr "[\t]" "\n" > TNGA_C_0hr_Asz1_Collapsed.fasta

이 스크립트를 테스트해 본 결과 내 요구 사항에 잘 작동했습니다.

내가 하고 싶은 것은 디렉터리의 모든 파일에 적용되는 for 루프를 만드는 것입니다. 나는 성공하지 않고 다음을 시도했습니다. 또한 변형을 시도했습니다.

for filename in /Test/*.fastqsanger; do
    awk '{if(NR%4==1) {printf(">%s\n",substr($0,2));} else if(NR%4==2) print;}' < filename.fastqsanger | awk 'NR%2==0' | sed 's/TGAGATGTGA/*/p'  | cut -d '*' -f 2 -s | sort -k 1.180,1.194 -u | cat -n | sed 's/^/>/' | tr "[\t]" "\n" > filename.fasta
done

나는 프로그래밍에 상당히 익숙하지 않으므로 도움을 주시면 대단히 감사하겠습니다.

답변1

filename귀하의 스크립트는 루프에 변수를 사용하지 않습니다 . filename.fastqsanger변수를 인용하지 않는다는 것은 전체 파일 이름이 이미 존재하지만 아직 존재하지 않는다는 것을 의미합니다.

수정된 버전은 다음과 같습니다.

for filename in /Test/*.fastqsanger; do
    awk '{if(NR%4==1) {printf(">%s\n",substr($0,2));} else if(NR%4==2) print;}' < $filename | awk 'NR%2==0' | sed 's/TGAGATGTGA/*/p'  | cut -d '*' -f 2 -s | sort -k 1.180,1.194 -u | cat -n | sed 's/^/>/' | tr "[\t]" "\n" > $filename.fasta
done

답변2

filename다음 줄에서는 변수를 사용하지 않습니다 .

for filename in /Test/*.fastqsanger; do
    awk '{if(NR%4==1) {printf(">%s\n",substr($0,2));} else if(NR%4==2) print;}' < filename.fastqsanger | awk 'NR%2==0' | sed 's/TGAGATGTGA/*/p'  | cut -d '*' -f 2 -s | sort -k 1.180,1.194 -u | cat -n | sed 's/^/>/' | tr "[\t]" "\n" > filename.fasta
done

노력하다:

for filename in /Test/*.fastqsanger
do
    fname=`basename $filename .fastqsanger`
    awk '{if(NR%4==1) {printf(">%s\n",substr($0,2));} else if(NR%4==2) print;}' < $filename | awk 'NR%2==0' | sed 's/TGAGATGTGA/*/p'  | cut -d '*' -f 2 -s | sort -k 1.180,1.194 -u | cat -n | sed 's/^/>/' | tr "[\t]" "\n" > $fname.fasta
done

$fname그러면 다음과 같이 파일의 기본 이름이 저장됩니다 .

/Test/abcd.fastqsanger/Test/abcd.fasta~보다 되다/Test/abcd.fastqsanger.fasta

관련 정보