GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo contar líneas en un archivo en UNIX/Linux

Pregunta :Tengo un archivo en mi sistema Linux que tiene muchas líneas. ¿Cómo cuento el número total de líneas en el archivo?

Usando "wc -l"

Hay varias formas de contar líneas en un archivo. Pero una de las formas más fáciles y ampliamente utilizadas es usar "wc -l". La utilidad wc muestra el número de líneas, palabras y bytes contenidos en cada archivo de entrada o entrada estándar (si no se especifica ningún archivo) en la salida estándar.

La sintaxis es:

# wc -l [filename]

Así que considere el archivo que se muestra a continuación:

$ cat file01.txt
this is a sample
file
with
some sample
data

1. El comando "wc -l" cuando se ejecuta en este archivo, genera el recuento de líneas junto con el nombre del archivo.

$ wc -l file01.txt
       5 file01.txt

2. Para omitir el nombre del archivo del resultado, use:

$ wc -l < file01.txt
       5

3. Siempre puede proporcionar la salida del comando al comando wc usando pipe. Por ejemplo:

$ cat file01.txt | wc -l
       5

Puede tener cualquier comando aquí en lugar de cat. La salida de cualquier comando se puede canalizar al comando wc para contar las líneas en la salida.

Uso de awk

Si desea usar awk para encontrar el conteo de líneas, use el siguiente comando awk:

$ awk 'END{print NR}' [filename]

Salida de ejemplo:

$ awk 'END{print NR}' file01.txt
5

Uso de sed

Use la siguiente sintaxis del comando sed para encontrar el número de líneas usando GNU sed:

$ sed -n '$=' [filename]

Salida de ejemplo:

$ sed -n '$=' file01.txt
5

Usando grep

Nuestro buen viejo amigo "grep" también se puede usar para contar el número de líneas en un archivo. Estos ejemplos son solo para hacerle saber que hay varias formas de contar las líneas sin usar "wc -l". Pero si me preguntan, siempre usaré "wc -l" en lugar de estas opciones, ya que es demasiado fácil de recordar.

$ grep -c ".*" [filename]

Salida de ejemplo:

$ grep -c ".*" file01.txt
5

Con GNU grep, puede usar la siguiente sintaxis de grep:

$ grep -Hc ".*" [filename]

Aquí hay otra versión del comando grep para encontrar el número de líneas.

$ grep -c ^ file01.txt
5

Salida de ejemplo:

$ grep -Hc ".*" file01.txt
file01.txt:5

Algunos comandos más

Junto con los comandos anteriores, es bueno conocer algunos comandos poco utilizados para encontrar el número de líneas en un archivo.

1. Use el comando nl (filtro de numeración de línea) para numerar cada línea. La sintaxis del comando es:

$ nl [filename]

Salida de ejemplo:

$ nl file01.txt
     1	this is a sample
     2	file
     3	with
     4	some sample
     5	data

No es una forma tan directa de obtener el recuento de líneas. Pero puede usar awk o sed para obtener el recuento de la última línea. Por ejemplo:

$ nl file01.txt | tail -1 | awk '{print $1}'
5

2. También puede usar vi y vim con el comando ":establecer número" para configurar el número en cada línea como se muestra a continuación. Si el archivo es muy grande, puede usar "Shift+G" para ir a la última línea y obtener el número de líneas.

3. Usa el comando cat con -n cambiar para obtener cada línea numerada. Nuevamente, aquí puede obtener el número de líneas desde la última línea.

$ cat -n file01.txt
     1	this is a sample
     2	file
     3	with
     4	some sample
     5	data
$ cat -n file01.txt | tail -1 | awk '{print $1}'
5

4. También puede usar Perl One Lines para encontrar el número de líneas:

$ perl -lne 'END { print $. }' file01.txt
5


Linux
  1. ¿Cómo agregar varias líneas a un archivo?

  2. ¿Contar líneas en un archivo?

  3. Cómo mostrar líneas específicas de un archivo en la línea de comandos de Linux

  4. ¿Cómo cambiar el nombre de un archivo en Linux?

  5. ¿Cómo contar líneas en un documento?

Cómo vincular un archivo en Linux

Cómo invertir líneas en un archivo por caracteres en Linux

Cómo encontrar las líneas más largas en un archivo en Linux

Cómo extraer el archivo Tar.xz en la línea de comandos de Linux

Comando wc de Linux:recuento de palabras, líneas y caracteres en un archivo

Tutorial de Unix Sed:anexar, insertar, reemplazar y contar líneas de archivos