aboutsummaryrefslogtreecommitdiffstats
path: root/mypath/count.sh
blob: 5105b4299e1ca756e4701230e5d3c0d453d2160a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/bin/bash

count_lines() {
    local filename=$1
    local sum=0
    local buf

    while IFS= read -r buf; do
        ((sum++))
    done < "$filename"

    echo "$sum"
}

extensions=("c" "tex" "cpp" "py" "h")
sum=0

for extension in "${extensions[@]}"; do
    files=$(find . -type f -name "*.$extension")
    for file in $files; do
        tmp=$(count_lines "$file")
        ((sum+=tmp))
        echo "文件路径: $file"
        echo "行数: $tmp"
        echo
    done
done

echo "总行数: $sum"