Cuántas líneas hay en cada archivo.
Uso wc
, originalmente para el recuento de palabras, creo, pero puede hacer líneas, palabras, caracteres, bytes y la longitud de línea más larga. La -l
opción le dice que cuente líneas.
wc -l <filename>
Esto generará el número de líneas en:
$ wc -l /dir/file.txt
32724 /dir/file.txt
También puede canalizar datos a wc
:
$ cat /dir/file.txt | wc -l
32724
$ curl google.com --silent | wc -l
63
Cuántas líneas hay en el directorio.
Tratar:
find . -name '*.pl' | xargs wc -l
otra línea:
( find ./ -name '*.pl' -print0 | xargs -0 cat ) | wc -l
Por cierto, el wc
comando cuenta nuevos códigos de líneas, no líneas. Cuando la última línea del archivo no termina con un nuevo código de línea, esto no contará.
Puede usar grep -c ^, ejemplo completo:
#this example prints line count for all found files
total=0
find /path -type f -name "*.php" | while read FILE; do
#you see use grep instead wc ! for properly counting
count=$(grep -c ^ < "$FILE")
echo "$FILE has $count lines"
let total=total+count #in bash, you can convert this for another shell
done
echo TOTAL LINES COUNTED: $total
Cuantas líneas en total
No estoy seguro de haber entendido que solicita correctamente. por ejemplo, esto generará resultados en el siguiente formato, mostrando el número de líneas para cada archivo:
# wc -l `find /path/to/directory/ -type f`
103 /dir/a.php
378 /dir/b/c.xml
132 /dir/d/e.xml
613 total
Alternativamente, puede resultar útil generar solo el número total de caracteres de línea nuevos sin el archivo por conteo de archivos al siguiente comando:
# find /path/to/directory/ -type f -exec wc -l {} \; | awk '{total += $1} END{print total}'
613
Lo más importante, necesito esto en 'formato legible por humanos', por ejemplo. 12,345,678 en lugar de 12345678
Bash tiene una función printf incorporada:
printf "%0.2f\n" $T
Como siempre, hay muchos métodos diferentes que podrían usarse para lograr los mismos resultados mencionados aquí.