初级版本:
(1)find ./ -name "*.h" -o -name "*.c" | xargs wc -l | awk 'END{print $1}'
(2)find ./ -name "*.h" -o -name "*.c" | xargs awk 'BEGIN{count};{count++;} END{print count}'
(3) find ./ -name "*.h" -o -name "*.c" | xargs cat | wc -l
加上过滤,去掉空行,注释行(以//开头的,以/*开头的)
find ./ -name "*.h" -o -name "*.c" | xargs awk 'BEGIN{count=0}; !/^$/ && !/^ *\/\// &&!/^ *\/\*.*/&&!/^ *\*.*/{count++;} END{print count}'
用awk中的pattern进行过滤,/^$/ 过滤空行 ,/^ *\/\// 过滤以 //开头的行,/^ *\/\*.*/ 过滤以/*开头的行,/^ *\*.*/ 过滤以*开头的行