2012-02-02 15 views
5

Tengo que escribir una secuencia de comandos para leer cada línea con un ciclo while y contar el número de palabras en cada línea. Hasta ahora puedo obtener el número total de líneas y el texto para cada una en su propia línea. Tengo problemas para usar el comando wc -w para contar el número de palabras para cada línea y mostrarla. cuando lo pongo en la misma línea que la sentencia printf da un recuento incorrecto. Tengo que canalizar el mosaico de texto al guión para que cuente las palabras, por ejemplo: cat archivo.txt | word_count.shrecuento de palabras de cada línea en una secuencia de comandos

¿Alguna sugerencia?

código

:

#!/bin/bash 
line_num=1 

while read line;do 

printf "line $line_num: $line" 

((line_num++)) 

done 

resultados:

cat imagine.txt | word_counts.sh 
line1: magine there's no countries 
line2: It isn't hard to do 
line3: Nothing to kill or die for 
line4: And no religion too 
line5: Imagine all the people living life in peace 

Respuesta

4
printf "$line_num: $(echo $line | wc -w)" 
+0

muchas gracias eso funcionó perfecto, no sabía que tenía que hacerme eco de la línea y put() a su alrededor. –

4

en caso de querer impresionar a riesgo de ser atrapado por plagio:

awk '$0="line"NR": "NF' imagine.txt 
Cuestiones relacionadas