grep -o -n '[{}]' <filename> | cut -d : -f 1 | uniq -c
出力は次のようになります:
3 1
1 2
1 行目に 3 回、2 行目に 1 回という意味です。
https://stackoverflow.com/a/15366097/3378354 から取得。
さまざまな解決策を読んだ後、これが問題への最も簡単なアプローチだと思います:
while read i; do echo $i |grep -o "matchingString"| wc -l; done < input.txt