Quante righe ci sono in ciascun file.
Usa wc
, in origine per il conteggio delle parole, credo, ma può fare linee, parole, caratteri, byte e la lunghezza della linea più lunga. L' -l
opzione dice di contare le righe.
wc -l <filename>
Questo genererà il numero di righe in:
$ wc -l /dir/file.txt
32724 /dir/file.txt
Puoi anche reindirizzare i dati a wc
:
$ cat /dir/file.txt | wc -l
32724
$ curl google.com --silent | wc -l
63
Quante linee ci sono nella directory.
Provare:
find . -name '*.pl' | xargs wc -l
un altro one-liner:
( find ./ -name '*.pl' -print0 | xargs -0 cat ) | wc -l
A proposito, il wc
comando conta i nuovi codici di linee, non le linee. Quando l'ultima riga del file non termina con un nuovo codice di riga, questo non verrà conteggiato.
Puoi usare grep -c ^, esempio 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
Quante righe in totale
Non sono sicuro di aver capito che hai richiesto correttamente. ad es. questo produrrà risultati nel seguente formato, mostrando il numero di righe per ciascun file:
# wc -l `find /path/to/directory/ -type f`
103 /dir/a.php
378 /dir/b/c.xml
132 /dir/d/e.xml
613 total
In alternativa, per visualizzare solo il numero totale di nuovi caratteri di riga senza il numero di file per file al seguente comando può rivelarsi utile:
# find /path/to/directory/ -type f -exec wc -l {} \; | awk '{total += $1} END{print total}'
613
Soprattutto, ho bisogno di questo in un "formato leggibile dall'uomo", ad es. 12.345.678 anziché 12345678
Bash ha una funzione printf integrata:
printf "%0.2f\n" $T
Come sempre, ci sono molti metodi diversi che potrebbero essere utilizzati per ottenere gli stessi risultati menzionati qui.