我有一个 shell 脚本;说出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
我想使用 shell 脚本查看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