grep -o -n '[{}]' <filename> | cut -d : -f 1 | uniq -c
Die Ausgabe sieht in etwa so aus:
3 1
1 2
Bedeutet 3 Vorkommen in der ersten Zeile und 1 in der zweiten.
Entnommen von https://stackoverflow.com/a/15366097/3378354 .
Nachdem ich verschiedene Lösungen gelesen habe, denke ich, dass dies der einfachste Ansatz für das Problem ist:
while read i; do echo $i |grep -o "matchingString"| wc -l; done < input.txt