最近突然迷上了shell,虽是新手,但是还是感受到了其功能的强大,写了一个简单的文本行数统计的小脚本,记录一下!
功能:
统计一个文件或者一个目录下所有文件的所有行数,并根据文件类型的不同而分别记录,比如.cpp,.h,.txt等等,
缺点:
没有根据文件是否为文本类型文件做判断和处理
实现:
递归遍历目录
主要使用命令:
关联数组,函数,参数,cat,wc
递归函数:根据传递的参数类型做处理,文件,记录行数;目录,遍历并递归
7 function statistics()
8 {
9 if [ -f $1 ]
10 then
11 # 文件,检查是否有此类文件
12 # 有,累加
13 # 没有,创建
14 line=$(( $line + $(cat $1 | wc -l) ))
15 file=$1
16 file_type_array[${file##*.}]=$(( file_type_array[${file##*.}] + $(cat $1 | wc -l) ))
17 elif [ -d $1 ]
18 then
19 # 目录,递归遍历
20 for file in $1/*
21 do
22 statistics $file
23 done
24 fi
25 }