にファイルを渡し、ファイル内にがgrep word
何回出現しているかを調べたいとしword
ます。grepの実行中に変数の値を増やすにはどうすればよいですか?
たとえば、 が 3 回出現する場合word
、次のような出力が必要です。
1
2
3
に出力されますstout
(または変数に保存されます)。
これはどう:
$ cat file
word
bird
is
this
word
word word word
$ fgrep -o word file | awk '{print NR}'
1
2
3
4
5
各一致ではなく、一致した行のみをカウントする場合は、-o
オプションをドロップします。
$ fgrep word file | awk '{print NR}'
1
2
3
合計数を変数に保存するだけの場合:
$ count=$(fgrep -o word file | wc -l)
$ echo $count
5
$ count=$(grep -c word file)
$ echo $count
3
増分変数:
#/bin/bash
while read line; do
fgrep -q word <<< "$line" && ((count++))
done < file
コメントの反応を考慮して:
grep word file|awk '{print NR}'