diff options
Diffstat (limited to 'mypath/count.sh')
-rwxr-xr-x | mypath/count.sh | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/mypath/count.sh b/mypath/count.sh new file mode 100755 index 0000000..5105b42 --- /dev/null +++ b/mypath/count.sh | |||
@@ -0,0 +1,30 @@ | |||
1 | #!/bin/bash | ||
2 | |||
3 | count_lines() { | ||
4 | local filename=$1 | ||
5 | local sum=0 | ||
6 | local buf | ||
7 | |||
8 | while IFS= read -r buf; do | ||
9 | ((sum++)) | ||
10 | done < "$filename" | ||
11 | |||
12 | echo "$sum" | ||
13 | } | ||
14 | |||
15 | extensions=("c" "tex" "cpp" "py" "h") | ||
16 | sum=0 | ||
17 | |||
18 | for extension in "${extensions[@]}"; do | ||
19 | files=$(find . -type f -name "*.$extension") | ||
20 | for file in $files; do | ||
21 | tmp=$(count_lines "$file") | ||
22 | ((sum+=tmp)) | ||
23 | echo "文件路径: $file" | ||
24 | echo "行数: $tmp" | ||
25 | echo | ||
26 | done | ||
27 | done | ||
28 | |||
29 | echo "总行数: $sum" | ||
30 | |||