#!/bin/bash #统计当前文件夹(包括子文件夹)下.sh脚本有效代码行数,不包括注释,和空行 #所有行 MY_LIST_VAR=`egrep -c -h -R --include="*.sh" ^.*$` #echo $MY_VAR MY_ALL_COUNT=0 #所有空行 MY_LIST_SPACE_VAR=`egrep -c -h -R ^$ --include="*.sh"` #echo $MY_LIST_SPACE_VAR MY_ALL_SPACE_COUNT=0 #所有注释行 MY_LIST_COMMENT_VAR=`egrep -c -h -R "^#[^!]" --include="*.sh"` #echo $MY_LIST_COMMENT_VAR MY_ALL_COMMENT_COUNT=0 for loop in $MY_LIST_VAR do MY_ALL_COUNT=`expr $MY_ALL_COUNT + $loop` done for loop in $MY_LIST_SPACE_VAR do MY_ALL_SPACE_COUNT=`expr $MY_ALL_SPACE_COUNT + $loop` done for loop in $MY_LIST_COMMENT_VAR do MY_ALL_COMMENT_COUNT=`expr $MY_ALL_COMMENT_COUNT + $loop` done echo `expr $MY_ALL_COUNT - $MY_ALL_COMMENT_COUNT - $MY_ALL_SPACE_COUNT`
Grep参数 -c 只输出匹配行的计数。 -I 不区分大小写(只适用于单字符)。 -h 查询多文件时不显示文件名。 -l 查询多文件时只输出包含匹配字符的文件名。 -n 显示匹配行及行号。 -s 不显示不存在或无匹配文本的错误信息。 -v 显示不包含匹配文本的所有行。
来源:https://www.cnblogs.com/xiangtingshen/p/12010322.html