[2017.02.13] linux平台下统计C++项目文件个数和代码行数

#输出排序后文件名
file='find . -name "*.[ch]" | sort'
#统计文件个数
filecnt='find . -name "*.[ch]" | wc -l'
#simple,统计所有行数
simple='find . -name "*.[ch]" | xargs cat|wc -l'
#emptylines,统计除了空行 exclude the empty lines
emptylines='find . -name "*.[ch]" |xargs cat|grep -v ^$|wc -l'
#annotations,统计除了空行和单行注释
annotations='find . -name "*.[ch]" |xargs cat|grep -v -e ^$ -e ^s*//.*$|wc -l'

echo ${file} && eval ${file}
echo ${filecnt} && eval ${filecnt}
echo ${simple} && eval ${simple}
echo ${emptylines}  && eval ${emptylines}
echo ${annotations}  && eval ${annotations}



auss@ubuntu:~/Projects/Qt/LeetCode/leetcode2017$ bash ./run_statistic.sh 
find . -name "*.[ch]" | sort
./ch00_dirty.h
./ch01_array.h
./ch02_list.h
./ch03_string.h
./ch04_stack_queue.h
./ch05_tree.h
./ch06_sort.h
./ch07_search.h
./ch08_brute.h
./ch09_bfs.h
./ch10_dfs.h
./ch11_divide_and_conquer.h
./ch12_gready.h
./ch13_dynamic_programming.h
./ch14_graph.h
./ch15_detail.h
./utilities.h
find . -name "*.[ch]" | wc -l
17
find . -name "*.[ch]" | xargs cat|wc -l
10456
find . -name "*.[ch]" |xargs cat|grep -v ^$|wc -l
9488
find . -name "*.[ch]" |xargs cat|grep -v -e ^$ -e ^s*//.*$|wc -l
9165

原文地址:https://www.cnblogs.com/ausk/p/6392541.html