Shell 스 크 립 트 C 언어 코드 줄 수 통계 구현

비교적 거 친 C 언어 코드 줄 수 통계 스 크 립 트 를 썼 는데 아직 bug 가 있 고 효율 도 높 지 않다.스 크 립 트 는 대부분의 주석 을 제거 한 후 줄 수 를 집계 하 는 것 으로 일부 예비 처 리 를 한 셈 이다.다음은 코드:

#!/bin/bash 

filename=$1
echo "`whoami`"
if [ $# -lt 1 ];then
 echo "usage : ./scripts filename"
 exit -1
fi

if [ ! -f $filename ];then
 echo "$filename is not a file"
 exit 0;
fi 

user="`whoami`"
if [ "$user" != "root" ];then
 echo "use scripts with root"
 exit 0;
fi

#    ,    :tables + space
sed '/^[[:blank:]]*$/d' $filename > "${filename}_backup"

#   //     
sed -i '/^[[:blank:]]*\/\//d' "${filename}_backup"

#/*xxxxx*/
#  /*      
grep -n '[[:blank:]]*/[*]' "${filename}_backup" | awk 'BEGIN{FS=":"}{print $1}' > "start.txt"
#  */      
grep -n '[*]/[[:blank:]]*' "${filename}_backup" | awk 'BEGIN{FS=":"}{print $1}' > "end.txt"

#      ,final.txt      /*xx....
....xx*/ paste "start.txt" "end.txt" > "final.txt" while read line do # START=`echo "$line" | awk 'BEGIN{FS="\t"}{print $1}'` # END=`echo "$line" | awk 'BEGIN{FS="\t"}{print $2}'` # bug, /*xxxx*/ /* */ , # printf("hello world
"); /* */ # /* */ # , if [ $START -eq $END ];then continue fi # /* */ sed -i "${START},${END}d" "${filename}_backup" done < "final.txt" wc -l "${filename}_backup" rm -f "final.txt" "start.txt" "end.txt"
스 크 립 트 는 대략적인 코드 줄 수의 통계 만 실현 할 수 있 고 정확 한 통 계 를 할 수 없습니다!
테스트 를 많이 하지 않 았 고 보기 드 문 주석 도 배제 하지 않 았 기 때문에 저 는 고려 하지 않 았 습 니 다.또한 스 크 립 트 의 효율 도 떨 어 지고 tmp 파일 을 많이 사 용 했 습 니 다.
그 러 니까 의견 많이 내 주세요!

좋은 웹페이지 즐겨찾기