¿Es posible usar wc para contar los caracteres de cada línea en lugar de la cantidad total de caracteres?
por ejemplo
echo -e foo\nbar\nbazz | grep -i ba
devuelve:
bar
bazz
Entonces, ¿por qué echo -e foo\nbar\nbazz | grep ba | wc -m
devolver una lista de las longitudes de esas palabras? (3 y 4)
¿Sugerencias?
P.D.:¿Por qué se cuentan los saltos de línea con wc -m? ? wc -l cuenta los saltos de línea, entonces ¿por qué debería wc -m contarlos también?
Respuesta aceptada:
wc cuenta sobre todo el archivo;
Puede usar awk para procesar línea por línea (sin contar el delimitador de línea):
echo -e "foonbarnbazzn" | grep ba | awk '{print length}'
o como awk es principalmente un superconjunto de grep :
echo -e "foonbarnbazzn" | awk '/ba/ {print length}'
(tenga en cuenta que algunos awk las implementaciones informan el número de bytes (como wc -c ) en lugar de la cantidad de caracteres (como wc -m ) y otros contarán bytes que no forman parte de caracteres válidos además de los caracteres (mientras que wc -m los ignoraría en la mayoría de las implementaciones))