linux - ver - ¿Cómo contar líneas en un documento?




ver las primeras lineas de un archivo linux (13)

Tengo líneas como estas, y quiero saber cuántas líneas tengo realmente ...

09:16:39 AM  all    2.00    0.00    4.00    0.00    0.00    0.00    0.00    0.00   94.00
09:16:40 AM  all    5.00    0.00    0.00    4.00    0.00    0.00    0.00    0.00   91.00
09:16:41 AM  all    0.00    0.00    4.00    0.00    0.00    0.00    0.00    0.00   96.00
09:16:42 AM  all    3.00    0.00    1.00    0.00    0.00    0.00    0.00    0.00   96.00
09:16:43 AM  all    0.00    0.00    1.00    0.00    1.00    0.00    0.00    0.00   98.00
09:16:44 AM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
09:16:45 AM  all    2.00    0.00    6.00    0.00    0.00    0.00    0.00    0.00   92.00

¿Hay alguna manera de contarlos todos usando comandos de linux?



Como han dicho otros, wc -l es la mejor solución, pero para futuras referencias puede usar Perl:

perl -lne 'END { print $. }'

$. contiene el número de línea y el bloque END se ejecutará al final de la secuencia de comandos.


La herramienta wc es el "contador de palabras" en sistemas operativos UNIX y similares a UNIX, también puede usarla para contar líneas en un archivo, agregando la opción -l , por lo que wc -l foo contará el número de líneas en foo . También puede canalizar la salida de un programa como este: ls -l | wc -l ls -l | wc -l , que le dirá cuántos archivos hay en el directorio actual.


La redirección / canalización de la salida del archivo a wc -l debería ser suficiente, como la siguiente:

cat /etc/fstab | wc -l

que luego proporcionaría el no. Sólo de líneas.


O cuente todas las líneas en subdirectorios con un patrón de nombre de archivo (por ejemplo, archivos de registro con marcas de tiempo en el nombre de archivo):

wc -l ./**/*_SuccessLog.csv

Para contar todas las líneas usa:

$ wc -l file

Para filtrar y contar solo líneas con patrón use:

$ grep -w "pattern" -c file  

O usa -v para invertir el partido:

$ grep -w "pattern" -c -v file 

Consulte la página de manual de grep para ver los argumentos -e, -i y -x ...


Si desea verificar la línea total de todos los archivos en un directorio, puede usar find y wc:

find . -type f -exec wc -l {} +

Si todo lo que desea es el número de líneas (y no el número de líneas y el nombre del archivo estúpido que vuelve):

wc -l < /filepath/filename.ext

Como se mencionó anteriormente, estos también funcionan (pero son inferiores por otras razones):

awk 'END{print NR}' file       # not on all unixes
sed -n '$=' file               # (GNU sed) also not on all unixes
grep -c ".*" file              # overkill and probably also slower

Utilice wc :

wc -l <filename>

Utilice wc :

wc -l <filename>

Esto dará como resultado el número de líneas en <filename> :

$ wc -l /dir/file.txt
3272485 /dir/file.txt

O, para omitir el <filename> del resultado, use wc -l < <filename> :

$ wc -l < /dir/file.txt
3272485

También puede canalizar datos a wc también:

$ cat /dir/file.txt | wc -l
3272485
$ curl yahoo.com --silent | wc -l
63

hay muchas maneras. el uso de wc es uno.

wc -l file

otros incluyen

awk 'END{print NR}' file

sed -n '$=' file (GNU sed)

grep -c ".*" file

cat file.log | wc -l | grep -oE '\d+'
  • grep -oE '\d+' : para devolver SOLAMENTE los números de dígitos.

wc -l file.txt | cut -f3 -d" "

Sólo devuelve el número de líneas





scripting