Скільки рядків у кожному файлі.
Використання wc
, спочатку для підрахунку слів, я вважаю, але це може зробити рядки, слова, символи, байти і найбільшу довжину рядка. -l
Опція каже його підрахунок рядків.
wc -l <filename>
Це виведе кількість рядків у:
$ wc -l /dir/file.txt
32724 /dir/file.txt
Ви також можете передавати дані wc
:
$ cat /dir/file.txt | wc -l
32724
$ curl google.com --silent | wc -l
63
Скільки рядків у каталозі.
Спробуйте:
find . -name '*.pl' | xargs wc -l
ще одне вкладиш:
( find ./ -name '*.pl' -print0 | xargs -0 cat ) | wc -l
BTW, wc
команда рахує нові коди рядків, а не рядки. Якщо останній рядок у файлі не закінчується новим кодом рядка, це не враховується.
Ви можете використовувати grep -c ^, повний приклад:
#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
Скільки рядків усього
Не впевнений, що я правильно вас зрозумів. наприклад, це виведе результати у наступному форматі, показуючи кількість рядків для кожного файлу:
# wc -l `find /path/to/directory/ -type f`
103 /dir/a.php
378 /dir/b/c.xml
132 /dir/d/e.xml
613 total
Крім того, вивести лише загальну кількість нових символів рядків без файлу за кількістю файлів до наступної команди може виявитися корисним:
# find /path/to/directory/ -type f -exec wc -l {} \; | awk '{total += $1} END{print total}'
613
Найголовніше, що мені це потрібно в "читаному для людини форматі", наприклад. 12,345,678, а не 12345678
Bash має вбудовану функцію printf :
printf "%0.2f\n" $T
Як завжди, існує багато різних методів, за допомогою яких можна досягти тих самих результатів, про які йшлося тут.