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