GNU/Linux >> Tutoriales Linux >  >> Linux

¿Contar los caracteres de cada línea con Wc?

¿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))


Linux
  1. Ordenarse con ordenar en la línea de comando

  2. Trabajando con tuberías en la línea de comando de Linux

  3. Elimine los primeros cinco caracteres en cualquier línea de un archivo de texto en Linux con sed

  4. obtenga los primeros 5 caracteres de cada línea en el script de shell

  5. Reemplace cada carácter de espacio en blanco al final de cada línea con '_'

Resuelve un rompecabezas en la línea de comandos de Linux con nudoku

Sugerencias para enumerar archivos con ls en la línea de comandos de Linux

Manipulación de texto en la línea de comando con grep

Seguimiento del tiempo con Timewarrior en la línea de comandos

Usando el comando tr en Linux para jugar con personajes

Cómo controlar versiones con Git en la línea de comando