命令求解:去掉#define语句中的sizeof()
我有一个含子目录的目录,里面很多头文件.h,现在要把每个头文件中的所有#define语句中出现的sizeof去掉。
如下例子,文件fruit.h中
#define APPLE sizeof(red)
#define (Orange) sizeof(org)
#define banana (sizeof(yellow))
经过处理后的fruit.h应该为:
#define APPLE red
#define (Orange) org
#define banana (yellow)
特别需要注意的是后括号的去除,这是必须的。
现学现用sed命令没能想出来。
求高手赐教,加上注释和思路更完美。
[解决办法]
没有去掉sizeof后面的括号,但效果是一样的,多一个括号不影响编译
#! /bin/shfor i in *.h; dosed -i 's/sizeof//g' $idone
[解决办法]
cat def.txt | sed -r 's/^(#define.*)sizeof\((.*)\)/\1\2/'
[解决办法]
$ sed 's/^\(#define.*\)sizeof(\(.*\))$/\1\2/' file#define APPLE red#define (Orange) org#define banana (yellow)
[解决办法]