ubuntu 通过shell脚本统计代码和注释行数

本文介绍了一个Bash脚本,用于统计指定目录下C语言源文件(.c和.h)中的代码行数和注释行数,通过`find`和`sed`命令实现文件查找和行数计算。
摘要由CSDN通过智能技术生成
#!/bin/bash

# 统计指定目录下的C语言代码和注释行数
# 用法:sh lineNumber.sh 目录名

if [[ $# -eq 0 ]]; then
    echo "用法:sh lineNumbers.sh 目录名"
    exit 1
fi

dir=$1
temp_file="/tmp/cfiles.txt"
total_lines=0
total_comment_lines=0

# 查找所有.c和.h文件,将文件名保存到一个临时文件中
find $dir -name "*.c" -o -name "*.h" > $temp_file

# 遍历临时文件,统计行数
while read file
do
    t_lines=`cat $file | sed '/^\s*$/d' | wc -l`	#排除空行获得包括注释的总代码行数
    src_lines=`cat $file | sed '/^\s*$/d' | sed '/^\s*\/\//d' | sed '\/\*.*\*\//d'| sed '/^\s*\/\*/,/\*\//d' | wc -l`	#排除单行注释和多行注释获得源码行数
    comment_lines=$((t_lines - src_lines))
    echo -e "$file:\tcomment_lines:$comment_lines\ttotal_lines:$t_lines"
    total_comment_lines=$((total_comment_lines + comment_lines))
    total_lines=$((total_lines + t_lines))
done < $temp_file

echo -e "总注释行数:\t$total_comment_lines"
echo -e "总行数:\t$total_lines"

# 删除临时文件
rm $temp_file
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值