Estoy ejecutando a find . -name pattern
para encontrar algunos archivos, y me gustaría obtener con elegancia el número total de líneas en estos archivos.
¿Cómo puedo lograr eso?
Si su versión wc
y find
admite las opciones necesarias:
find . -name pattern -print0 | wc -l --files0-from=-
que le dará recuentos por archivo, así como un total. Si solo quieres el total:
find . -name pattern -print0 | wc -l --files0-from=- | tail -n 1
Otra opción para versiones de find
eso lo admite:
find . -name pattern -exec cat {} + | wc -l
$ find . -name '*.txt' -exec cat '{}' \; | wc -l
Toma cada archivo y lo cat
envía, luego canaliza todo eso en el wc
modo de conteo de líneas.
O, [no probado] nombre de archivo extraño seguro:
$ find . -name '*.txt' -print0 | xargs -0 cat | wc -l
Lamentablemente, la salida de:
find . -iname "yourpattern" -exec cat '{}' \; |wc -l
inserta líneas adicionales. Para obtener un recuento de línea confiable, debe hacer:
find . -name "yourpattern" -print0 | xargs -0 wc -l
De esta manera, maneja los espacios correctamente, obtiene un recuento de líneas para cada archivo y el recuento total de líneas, más rápido y con estilo.
Otra forma fácil de encontrar no. líneas en un archivo:
Ejemplo:
fuente
No probado, pero ¿qué tal algo como:
fuente
Trabajará eficientemente.
fuente