当前位置: 技术问答>linux和unix
linux正侧表达式过滤的问题
来源: 互联网 发布时间:2016-10-08
本文导语: 命令是这样:find ./ -name "*.c" | xargs cat | grep -v "^$" | wc -l 意思是:统计目录下(包括子目录)的所有.c文件过滤过空行后的总行数; 想问的是:怎样过滤多种字符,如:还要过滤//,/**/等多种 现请高手帮助哦!急急啊!...
命令是这样:find ./ -name "*.c" | xargs cat | grep -v "^$" | wc -l
意思是:统计目录下(包括子目录)的所有.c文件过滤过空行后的总行数;
想问的是:怎样过滤多种字符,如:还要过滤//,/**/等多种
现请高手帮助哦!急急啊!非常感谢
意思是:统计目录下(包括子目录)的所有.c文件过滤过空行后的总行数;
想问的是:怎样过滤多种字符,如:还要过滤//,/**/等多种
现请高手帮助哦!急急啊!非常感谢
|
试试这个:
find ./ -name "*.c" -exec ls {} ; | xargs awk 'BEGIN{i=0;flag=0}{if(flag==0){if($0 ~/^/// || ($0 ~/^/*/ && $0 ~/*/$/) || $0=="") ;else if($0 ~/^/*/ && !($0 ~/*/$/)) flag=1; else i++;} if(!($0 ~/^/*/) && $0 ~/*/$/ && flag==1) flag=0;}END{print i;}'
find ./ -name "*.c" -exec ls {} ; | xargs awk 'BEGIN{i=0;flag=0}{if(flag==0){if($0 ~/^/// || ($0 ~/^/*/ && $0 ~/*/$/) || $0=="") ;else if($0 ~/^/*/ && !($0 ~/*/$/)) flag=1; else i++;} if(!($0 ~/^/*/) && $0 ~/*/$/ && flag==1) flag=0;}END{print i;}'