How many lines are in each file.
Use wc
, originalmente para contagem de palavras, acredito, mas ele pode fazer linhas, palavras, caracteres, bytes e o comprimento de linha mais longo. A opção -l
diz para contar linhas.
wc -l <filename>
Isso produzirá o número de linhas em:
$ wc -l /dir/file.txt
32724 /dir/file.txt
Você também pode enviar dados para wc
:
$ cat /dir/file.txt | wc -l
32724
$ curl google.com --silent | wc -l
63
How many lines are in directory.
Tente:
find . -name '*.pl' | xargs wc -l
outro one-liner:
( find ./ -name '*.pl' -print0 | xargs -0 cat ) | wc -l
BTW, o comando wc
conta novos códigos de linhas, não linhas. Quando a última linha no arquivo não terminar com o novo código de linha, isso não será contado.
Você pode usar grep -c ^, exemplo 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
How many lines in total
Não tenho certeza se entendi corretamente. por exemplo. Isto irá mostrar os resultados no seguinte formato, mostrando o número de linhas para cada arquivo:
# wc -l 'find /path/to/directory/ -type f'
103 /dir/a.php
378 /dir/b/c.xml
132 /dir/d/e.xml
613 total
Como alternativa, para gerar apenas o número total de caracteres de nova linha sem o arquivo por contagem de arquivos, o seguinte comando pode ser útil:
# find /path/to/directory/ -type f -exec wc -l {} \; | awk '{total += $1} END{print total}'
613
Most importantly, I need this in 'human readable format' eg. 12,345,678 rather than 12345678
O Bash tem uma função printf embutida:
printf "%0.2f\n" $T
Como sempre, existem muitos métodos diferentes que podem ser usados para alcançar os mesmos resultados mencionados aqui.