Có bao nhiêu dòng trong mỗi tệp.
Sử dụng wc
, ban đầu để đếm từ, tôi tin, nhưng nó có thể thực hiện các dòng, từ, ký tự, byte và độ dài dòng dài nhất. Các -l
tùy chọn cho nó để đếm dòng.
wc -l <filename>
Điều này sẽ xuất số lượng dòng trong:
$ wc -l /dir/file.txt
32724 /dir/file.txt
Bạn cũng có thể dẫn dữ liệu vào wc
:
$ cat /dir/file.txt | wc -l
32724
$ curl google.com --silent | wc -l
63
Có bao nhiêu dòng trong thư mục.
Thử:
find . -name '*.pl' | xargs wc -l
một lớp lót khác:
( find ./ -name '*.pl' -print0 | xargs -0 cat ) | wc -l
BTW, wc
lệnh đếm mã dòng mới, không phải dòng. Khi dòng cuối cùng trong tệp không kết thúc bằng mã dòng mới, điều này sẽ không được tính.
Bạn có thể sử dụng grep -c ^, ví dụ đầy đủ:
#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
Tổng cộng có bao nhiêu dòng
Không chắc chắn rằng tôi hiểu bạn yêu cầu chính xác. ví dụ: điều này sẽ xuất kết quả theo định dạng sau, hiển thị số lượng dòng cho mỗi tệp:
# wc -l `find /path/to/directory/ -type f`
103 /dir/a.php
378 /dir/b/c.xml
132 /dir/d/e.xml
613 total
Ngoài ra, để chỉ xuất tổng số ký tự dòng mới mà không có tệp theo số lượng tệp theo lệnh sau có thể chứng minh hữu ích:
# find /path/to/directory/ -type f -exec wc -l {} \; | awk '{total += $1} END{print total}'
613
Quan trọng nhất, tôi cần điều này ở 'định dạng có thể đọc được của con người', vd. 12.345.678 chứ không phải 12345678
Bash có chức năng printf được xây dựng trong:
printf "%0.2f\n" $T
Như mọi khi, có nhiều phương pháp khác nhau có thể được sử dụng để đạt được kết quả tương tự được đề cập ở đây.