shell编程,消除c/c++无用变量告警的小脚本

时间:2021-05-22 08:53:00
#!/bin/bash
# description:clean warning 该脚本自动注释c,c++文件中定义未使用的变量
# warninglist -- 定义未使用变量的编译告警汇总文件,其中各个告警项目格式如下,以:分割的,这样awk能识别
#                 /opt/work/code/script/clean_warning/test1.c:4:unused variable ‘i’...
#   test1.c  -- 包含定义未使用变量的c文件,
#   test2.c
# author:River
# date:2015.3.13
# note:一个限制是c文件中的定义未使用变量是单独占一行
#
if [ $# = 0 ];then
    echo "usage: clean_warning <warninglist>"
fi
WARNINGLIST=$1
LINENUM=0
while read LINE
do
LINENUM=`expr $LINENUM + 1` #warninglist文件的行号 从1开始
FILE=`sed -n ${LINENUM}p $WARNINGLIST| awk -F: '{print $1}'` #获取c文件的文件名
WARNLINE=`sed -n ${LINENUM}p $WARNINGLIST | awk -F: '{print $2}'` #获取c文件告警的行号
sed -i ''$WARNLINE's/^/\/\// ' $FILE #将c文件中告警行,定义未使用的变量行首加//注释
echo "clean warning in line $WARNLINE of file $FILE"
done <$WARNINGLIST