统计代码注释率

本文介绍了一个用于分析C/C++源代码的bash脚本,该脚本能够计算文件的总行数、代码行数、注释行数、空白行数及代码注释比率。通过对指定文件的逐行解析,区分不同类型的注释并进行精确统计。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#!/bin/bash
#program:
#       分析.c,.cpp文件,计算文件行总数,代码行总数,注释行总数,空白行总数,代码注释率
#       注释类型:
#       (1)行注释"//这里是注释内容"
#       (2)块注释"/*这里是注释内容*/"
#History:
#2013/12/16 Fgx First release
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
#fileName="/home/fgx/hello_new.c"
echo "-----------------------">> result.txt
date >>result.txt
echo "统计的文件名:">>result.txt
echo "$fileName" >>result.txt
echo >>result.txt
echo "----===统计结果===----">>result.txt
declare -i fileLine=`cat $fileName | wc -l`
echo  "文件行总数:"$fileLine"" >>result.txt
declare -i codeLine=`cat $fileName | grep -v '^[[:space:]]*$'|grep -v '^[[:space:]]*\/\/' |sed '/\/\*/,/\*\//d' | wc -l`
echo  "代码行总数:"$codeLine"" >>result.txt
declare -i noNoteLine=`cat $fileName |  sed '/\/\*/,/\*\//d' | sed '/\/\//d'|wc -l`
declare -i noteLine=0
((noteLine=fileLine-noNoteLine))
echo  "注释行总数:"$noteLine"" >>result.txt
declare -i blankLine=`cat $fileName | grep '^[[:space:]]*$' |wc -l`
echo  "空白行总数:"$blankLine"" >>result.txt
declare -i line=0
((line=noteLine+codeLine))
echo -n  "代码注释率:" >>result.txt
awk 'BEGIN{printf "%.2f%\n",('$noteLine'/'$line')*100}' >>result.txt
echo "----==============----" >>result.txt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值