我编写了以下shell来计算以“A valA B valB”模式开头的行数。但是,我认为我没有正确传递变量。有什么帮助解决这个问题?
for i in {0..16};
do
for j in {0..16};
do
echo A $i B $j
grep '^ A : "$i" B : "$j"' file | wc -l
done
done
答案 0 :(得分:9)
使用正确的bash quoting。变量不会在''
内展开。请参阅链接以供参考。
grep "^ A : $i B : $j" file | wc -l
也许你的意思是这个,但只要尝试一下。
grep "^ A : \"$i\" B : \"$j\"" file | wc -l
答案 1 :(得分:7)
wc -l
,您可以直接使用grep -c
来计算匹配数您可以使用:
grep -c "^ A : $i B : $j" file