Использование awk. Сначала некоторые тестовые данные:
$ cat f1
> a > b
> c
$ cat f2
d e
f
Скрипт awk:
$ awk '
FNR==1 { f[FILENAME]=0 } # define an array element for each file
(c=gsub(/>/,"&")) { # count >s on record
f[FILENAME]+=c
}
END { # in the end
for(i in f) # iterate all files
print i,f[i] # and output
}' f1 f2
Выход:
f1 3
f2 0
Используя grep
вы теряете файлы без попаданий:
$ grep -Ho \> f1 f2 | cut -d : -f 1 | uniq -c
3 f1