¿Escribir un comando Unix para contar el número total de palabras en las primeras n líneas del archivo?

¿Escribir un comando Unix para contar el número total de palabras en las primeras n líneas del archivo?

¿Cómo puedo contar las palabras de las primeras 3líneas?

aporte:

There are many systems which are Unix-like in their architecture. 
Not able among these are the GNU/Linux distributions. 
The distinctions between Unix and Unix-like systems.
For distinctions between SUS branded UNIX architectures and other similar architectures, see Unix-like.

producción:28

Respuesta1

Usando awk de una sola línea:

awk ' { gsub("[-/]"," ") } NR<4 { w+=NF };END { print w }' <filename>

Respuesta2

$ head -n 3 file | tr -s '/ -' '\n\n\n' | wc -l
      28

El recuento 28parece ser el que obtendría para las primeras tres líneas del texto dado si delimita las palabras con espacios, guiones y barras.

El comando anterior dividirá las tres primeras líneas en una palabra por línea reemplazando cada espacio, guión y barra con una nueva línea (y eliminando varias líneas nuevas consecutivas usando la -sopción con tr), y luego contará el número de líneas producidas por esta división. .

Si usas el más natural head -n 3 file | wc -w, obtendrás 25palabras. Esto se debe a que wc -wsolo cuenta palabras delimitadas por espacios en blanco y consideraría ambas Unix-Likey GNU/Linuxcomo una sola palabra.

Respuesta3

Con GNU grepo compatibles:

<myfile head -n 3 | grep -aEo '\w+' | wc -l

palabrassiendo en ese caso secuencias de uno o más caracteres alfanuméricos o guiones bajos.

Respuesta4

head -n 4 myfile | wc -w

myfile es un archivo de entrada, 4 son las primeras 4 líneas

información relacionada