ver varias una primeras por palabras numero mostrar lineas linea las extraer contar caracteres avanzado archivo linux bash command-line scripting

varias - mostrar numero de lineas de un archivo linux



¿Cómo contar líneas en un documento? (19)

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.


He estado usando esto:

cat myfile.txt | wc -l

Lo prefiero a la respuesta aceptada porque no imprime el nombre del archivo, y no tienes que usar awk para solucionarlo. Respuesta aceptada:

wc -l myfile.txt

Pero creo que la mejor es la respuesta de GGB667:

wc -l < myfile.txt

Probablemente usaré eso de ahora en adelante. Es un poco más corto que mi camino. Estoy poniendo mi vieja forma de hacerlo en caso de que alguien lo prefiera. La salida es la misma con esos dos métodos.


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.


Los anteriores son el método preferido, pero el comando "cat" también puede ser útil:

cat -n <filename>

Le mostrará todo el contenido del archivo con los números de línea.


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 ...


Sé que esto es viejo pero aún así: cuenta las líneas filtradas

Mi archivo se ve como:

Number of files sent Company 1 file: foo.pdf OK Company 1 file: foo.csv OK Company 1 file: foo.msg OK Company 2 file: foo.pdf OK Company 2 file: foo.csv OK Company 2 file: foo.msg Error Company 3 file: foo.pdf OK Company 3 file: foo.csv OK Company 3 file: foo.msg Error Company 4 file: foo.pdf OK Company 4 file: foo.csv OK Company 4 file: foo.msg Error

Si quiero saber cuántos archivos se envían OK:

grep "OK" <filename> | wc -l

O

grep -c "OK" filename


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 nl así:

nl filename

Del man nl :

Escriba cada ARCHIVO en la salida estándar, con números de línea agregados. Sin ARCHIVO, o cuando ARCHIVO es -, lea la entrada estándar.


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


Vi esta pregunta mientras buscaba una forma de contar varias líneas de archivos, así que si quieres contar varias líneas de archivos de un archivo .txt, puedes hacer esto.

cat *.txt | wc -l

también se ejecutará en un archivo .txt;)


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>

O

command | wc -l


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

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