分页: 1 / 2
向高手请教个问题,如何用shell脚本删掉C语言中的注释部分?
发表于 : 2011-09-01 16:09
由 Rock_Lee
用Shell脚本,删除C源代码中的/*...*/注释,要注意以下这种情况:
/*
...
.../*.....
......*/..\*...
...
*/
Re: 向高手请教个问题,如何用shell脚删掉C语言中的注释部分?
发表于 : 2011-09-01 16:50
由 ChenFengyuan
用gcc -E好了.....

Re: 向高手请教个问题,如何用shell脚本删掉C语言中的注释部分?
发表于 : 2011-09-01 16:55
由 sk1418
说下思路吧,以前写过,懒得写了,你看看符合你的情况不。
先把所有的 /* 替换成 /*\n
然后 */换成 *//n
再逐行扫描,碰到一个/*, 就设个变量标记比如说叫a=1,从这以后所有行都写到一个变量,比如b里,碰到了*/就把a再重置成0,这样b就是这段注释了。以此类推。
至于你是只要注释还是不要注释,就在print上判断不同而已。
实现awk省事点,sed亦可。
Re: 向高手请教个问题,如何用shell脚本删掉C语言中的注释部分?
发表于 : 2011-09-02 2:10
由 fnan
cat 2.c
#include <stdio.h>
main()
{
long l=0;
/*...*/ printf("%ld\n",++l);/*...*/
/*...
printf("%ld\n",++l);
/*...
printf("%ld\n",++l);
printf("%ld\n",++l);
...*/ printf("%ld\n",++l);
}
awk 'BEGIN{RS="\034"} {gsub("\*\/","\034");gsub(/\/\*[^\034]*\034/,"");print}' 2.c
#include <stdio.h>
main()
{
long l=0;
printf("%ld\n",++l);
printf("%ld\n",++l);
}
#这效果吗?一句就好。
Re: 向高手请教个问题,如何用shell脚本删掉C语言中的注释部分?
发表于 : 2011-09-02 12:43
由 Rock_Lee
回复4楼:
是的。
Re: 向高手请教个问题,如何用shell脚本删掉C语言中的注释部分?
发表于 : 2011-09-02 12:53
由 Rock_Lee
3楼的思路领会了,只是怎样把要删除的部分写入变量这一部不会写,能否给段代码呀,小弟在此先说声谢谢了!
Re: 向高手请教个问题,如何用shell脚删掉C语言中的注释部分?
发表于 : 2011-09-02 12:56
由 Rock_Lee
ChenFengyuan 写了:用gcc -E好了.....

要用shell啊,大哥!!
Re: 向高手请教个问题,如何用shell脚本删掉C语言中的注释部分?
发表于 : 2011-09-02 20:21
由 fnan
Rock_Lee 写了:回复4楼:
是的。
awk -F"\033" -v RS="\034" '{gsub("\*\/","\034");gsub(/\/\*[^\034]*\034/,"");print}' 2.c #实用的。
Re: 向高手请教个问题,如何用shell脚本删掉C语言中的注释部分?
发表于 : 2011-09-02 20:47
由 eexpress
sed一样。先把换行替换成某特殊字符。然后一堆一堆的去掉,再恢复回车。
干嘛要shell
Re: 向高手请教个问题,如何用shell脚本删掉C语言中的注释部分?
发表于 : 2011-09-02 21:01
由 我就是我2
eexpress 写了:sed一样。先把换行替换成某特殊字符。然后一堆一堆的去掉,再恢复回车。
干嘛要shell
不知道ee说的shell是什么.查了wiki还是搞不懂.
CLI...

Re: 向高手请教个问题,如何用shell脚本删掉C语言中的注释部分?
发表于 : 2011-09-02 21:13
由 eexpress
10楼看7楼,lz的要求。
其实用perl多简单。

Re: 向高手请教个问题,如何用shell脚本删掉C语言中的注释部分?
发表于 : 2011-09-02 21:14
由 fnan
不用替换换行的。
Re: 向高手请教个问题,如何用shell脚本删掉C语言中的注释部分?
发表于 : 2011-09-02 21:18
由 eexpress
当然可以不改换行。只是缺省换行标志,如果改了,忘记恢复,就惨了。
Re: 向高手请教个问题,如何用shell脚本删掉C语言中的注释部分?
发表于 : 2011-09-02 21:59
由 fnan
无视换行的。
Re: 向高手请教个问题,如何用shell脚本删掉C语言中的注释部分?
发表于 : 2011-09-02 22:04
由 fnan
话说极端复杂的条件下,perl真有极大优势,一句两句的,那样都无所谓的。