1. 程式人生 > >linux下分析多個目錄和檔案行數的簡單shell指令碼分享(畢設程式碼行數統計實用工具)

linux下分析多個目錄和檔案行數的簡單shell指令碼分享(畢設程式碼行數統計實用工具)

使用方法

1. 在自己的linux機器上新建一個wrodcount.sh,然後將下方原始碼copy進去

2. 執行指令碼命令,然後第一個引數是要統計的字尾名,後面跟要統計的所有路徑(相對絕對路徑都可以)

使用方法樣例

./wordcount.sh 'php' '../Tool/' '../Application/'

由於輸出內容比較多,建議將輸出重定向到某個檔案,再檢視

./wordcount.sh 'php' '../Tool/' '../Application/' > wordcount_result

原始碼

# wordcount
# author: linhongzhao
# describe: 指令碼用於計算指定檔案和指定目錄下的所有檔案的總行數
# usage: ./wordcount.sh [extension] [path...]
# example: ./wordcount.sh 'php' '../Tool/' '../Application/'
#!/usr/bin/env bash
total_lines=0
path_lines=0
analyse(){
    total=0
    # 指定字尾名
    extension=$1
    path=$2
    total_file_list=`find ${path} -name "*.${extension}"`
    for file in ${total_file_list}
    do
        echo -e "\tfile: "${file}
        count=`wc -l ${file}|awk -F ' ' '{print $1}'`
        echo -e "\t\tline count:"${count}
        total=`expr ${total} + ${count}`
    done
    path_lines=${total}
    total_lines=`expr ${total} + ${total_lines}`
}

extension=$1
# 指定目錄
for path in $*
do
    if [ ${path} = $1 ]
    then
        continue
    fi
    echo '#############'
    echo -e "analyse path:\n\t"${path}
    analyse ${extension} ${path}
    echo 'path line count: '${path_lines}
done
echo "total line count for all path: "${total_lines}