셸 통계 C 코드 줄 수

5369 단어 shell
셸 통계 C 코드 줄 수
오 랜 만 에 쓴 것 이 있 습 니 다. 적어 서 쌓 아 보 세 요. 셸 도 써 본 적 이 없습니다. 셸 을 써 서 C 프로그램 코드 줄 수 를 통계 해 보 세 요.
구체 적 인 코드 는 다음 과 같다.
#  : shell           
#  :asq
#  :2016-11-07
#  :     /**/   ,        ,        #if 0 #endif

#!/bin/sh

folder="."
res_path="count_res"
tmp=${res_path}"/"

# 0          
if [ ! -d ${res_path} ]; then
    mkdir ${res_path}
else
        rm -rf ${res_path}/*
fi

#     ^M  
for org_name in ${folder}/*.c; do
    new_name=${tmp}`basename $org_name`
        tr -d "\015" < ${org_name} > ${new_name} 
done
for org_name in ${folder}/*.h; do
    new_name=${tmp}`basename $org_name`
        tr -d "\015" < ${org_name} > ${new_name} 
done

#         
#2.1    
for file_name in ${res_path}/* ;do
    sed -i "/^[[:blank:]]*$/d" ${file_name}
done
#2.2  /**/   
for file_name in ${res_path}/* ;do
    #sed -i "/^[[:blank:]]*\/\*.*\*\/[[:blank:]]*$/d" ${file_name}
    #               ,   grep 
        new_name=${tmp}"new_"`basename ${file_name}`
    grep -v "^[[:blank:]]*\/\*.*\*\/[[:blank:]]*$" ${file_name}  > ${new_name}
        rm ${file_name}
done
#exit 0
#2.3  /**/   
for file_name in ${res_path}/* ;do
    sed -i "/^[[:blank:]]*\/\*.*/,/^[[:blank:]]*.*\*\/$/d" ${file_name}
done
#2.4  #if 0 #endif   
for file_name in ${res_path}/* ;do
    #if 0       
    sed -i "/^[[:blank:]]*#if[[:blank:]][[:blank:]]*0.*/,/^[[:blank:]]*#endif.*/d" ${file_name}
done
#2.5  //   
for file_name in ${res_path}/* ;do
    sed -i "/^[[:blank:]]*\/\/.*/d" ${file_name}
done
#2.6     }{,    
#     
echo "the total line of the program is:"`grep -nr "" ${tmp} | wc -l` > ${tmp}result.txt
echo "finish counting the code's lines, see result in count_res/result.txt"
exit 0

좋은 웹페이지 즐겨찾기