Combien de lignes sont dans chaque fichier.
Utilisez wc
, à l'origine pour le nombre de mots, je crois, mais il peut faire des lignes, des mots, des caractères, des octets et la plus grande longueur de ligne. L' -l
option lui dit de compter les lignes.
wc -l <filename>
Cela produira le nombre de lignes dans:
$ wc -l /dir/file.txt
32724 /dir/file.txt
Vous pouvez également diriger des données vers wc
:
$ cat /dir/file.txt | wc -l
32724
$ curl google.com --silent | wc -l
63
Combien de lignes sont dans le répertoire.
Essayer:
find . -name '*.pl' | xargs wc -l
un autre one-liner:
( find ./ -name '*.pl' -print0 | xargs -0 cat ) | wc -l
En passant, la wc
commande compte les nouvelles lignes, pas les lignes. Lorsque la dernière ligne du fichier ne se termine pas par un nouveau code de ligne, cela ne compte pas.
Vous pouvez utiliser grep -c ^, exemple complet:
#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
Combien de lignes au total
Pas sûr que j'ai bien compris votre demande. par exemple, cela produira les résultats au format suivant, en indiquant le nombre de lignes pour chaque fichier:
# wc -l `find /path/to/directory/ -type f`
103 /dir/a.php
378 /dir/b/c.xml
132 /dir/d/e.xml
613 total
Sinon, il peut s'avérer utile de ne générer que le nombre total de caractères de nouvelle ligne sans compter le nombre de fichiers par fichier jusqu'à la commande suivante:
# find /path/to/directory/ -type f -exec wc -l {} \; | awk '{total += $1} END{print total}'
613
Plus important encore, j'ai besoin de cela dans un «format lisible par l'homme», par exemple. 12 345 678 plutôt que 12345678
Bash a une fonction printf intégrée dans:
printf "%0.2f\n" $T
Comme toujours, de nombreuses méthodes différentes pourraient être utilisées pour obtenir les mêmes résultats que ceux mentionnés ici.