test.sh
다음과 같은 쉘 스크립트가 있습니다 .
for j in *_seqs.txt; do
while read line; do
count_of_occurences=$(grep "^$line" $j)
echo $count_of_occurences
done < $1
done
그리고 같은 폴더에 있는 여러 파일은 다음과 같습니다.
1_seqs.txt
2_seqs.txt
3_seqs.txt
4_seqs.txt
5_seqs.txt
say의 내용은 1_seqs.txt
다음과 같습니다.
AAA0030309
3300AAA009
00AAA33030
AAA0022033
alphabets.txt
다음 내용이 포함된 다른 파일이 있습니다.
AAA
BBB
CCC
쉘 스크립트를 사용하여 alphabets.txt
모든 것을 보고 싶습니다. 나는 say 줄의 시작 부분에 say가 나타나는지 확인하고 싶습니다.*_seqs.txt
test.sh
AAA
1_seqs.txt
이렇게 스크립트를 실행하면 할 수 없습니다
sh test.sh alphabets.txt
어떤 이유로 문자열이 내부 변수에 저장되면 시작 부분을 볼 수 없습니다 grep
.$line
test.sh
내 스크립트 출력은 다음과 같아야합니다
AAA0030309
AAA0022033
답변1
귀하의 스크립트는 귀하가 원하는 것을 거의 수행합니다. 캡처할 필요는 없으며 grep
인쇄가 복잡해질 뿐입니다.
#!/bin/bash
for j in *_seqs.txt; do
while read line; do
grep "^$line" "$j"
done < "$1"
done