#!/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
ubuntu 通过shell脚本统计代码和注释行数
最新推荐文章于 2024-03-01 11:54:16 发布
本文介绍了一个Bash脚本,用于统计指定目录下C语言源文件(.c和.h)中的代码行数和注释行数,通过`find`和`sed`命令实现文件查找和行数计算。
摘要由CSDN通过智能技术生成