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