wc
conta todo o arquivo;
Você pode usar awk
para processar linha por linha (sem contar o delimitador de linha):
echo -e "foo\nbar\nbazz\n" | grep ba | awk '{print length}'
ou como awk
é principalmente um superconjunto de grep
:
echo -e "foo\nbar\nbazz\n" | awk '/ba/ {print length}'
(observe que algumas implementações de awk
informam o número de bytes (como wc -c
) em oposição ao número de caracteres (como wc -m
) e outras contam bytes que não fazem parte de caracteres válidos em além dos caracteres (enquanto wc -m
os ignoraria na maioria das implementações))