10

「 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
4

2 に答える 2

17

適切なbash 引用符を使用してください。変数は内部で展開されません''。参考までにリンク先をご覧ください。

grep "^ A : $i B : $j" file | wc -l 

また、おそらくこれを意味するかもしれませんが、どちらかを試してください。

grep "^ A : \"$i\" B : \"$j\"" file | wc -l 
于 2013-09-05T17:02:34.513 に答える
8
  1. シェルの正しい引用符が必要です (シェルの変数展開には二重引用符を使用します)
  2. は必要ありません。一致をカウントするためにwc -l直接使用できますgrep -c

以下を使用できます。

grep -c "^ A : $i B : $j" file
于 2013-09-05T17:13:38.747 に答える