首页 > 学技术 > 技术网文 > Linux Shell > 正文

[保留] 求一个能去掉源文件中注释的shell


来源 chinaunix.net 酷勤网整理

:( 
求一个能去掉源文件中注释的shell,最好能同时统计行数,谢谢!
注释主要有以下情况
//注释;
前部保留//注释;
i++;/*注释1
注释2*/k++;



 honbj 回复于:2005-07-19 08:49:24

引用:原帖由 "yyy_zc" 发表:
:( 
求一个能去掉源文件中注释的shell,最好能同时统计行数,谢谢!
注释主要有以下情况
//注释;
前部保留//注释;
i++;/*注释1
注释2*/k++;




问题描述不清

[ 本帖最后由 honbj 于 2006-10-25 09:04 编辑 ]


 waker 回复于:2005-07-19 09:51:45

sed -e '/^[   ]*\/\/.*$/d

/\/\/.*$/s///
/\/\*.*\*\//s///g
/\/\*/{ :a;N;s/\/\*.*\*\///g;tc;ba;:c }'  file



 lych 回复于:2005-07-19 09:56:35

引用:原帖由 "waker"]
 发表:


waker哥理解能力就是强!
 :em02:


 honbj 回复于:2005-07-19 09:59:40

引用:原帖由 "yyy_zc" 发表:
:( 
求一个能去掉源文件中注释的shell,最好能同时统计行数,谢谢!
注释主要有以下情况
//注释;
前部保留//注释;
i++;/*注释1
注释2*/k++;



是不是这样

注释主要有以下情况:
1  // 注释;                        这种去掉
2  code;    //注释;            这种保留code
3  code;   /*注释1           这种也保留code
注释2 */  code;      

看来waker的理解力也很强啊


 dahai01 回复于:2005-07-19 10:13:13

waker  人才 

要求waker 写书.


 honbj 回复于:2005-07-19 10:33:38

引用:原帖由 "dahai01" 发表:
waker  人才 

要求waker 写书.



把回答的问题做成FAQ


 waker 回复于:2005-07-19 10:43:42

[size=18]书[/size]

 :mrgreen:


 honbj 回复于:2005-07-19 10:45:27

:P


 r2007 回复于:2005-07-19 11:53:49

这样的情况如何处理?
 char * mess1="注释方法:\n/*注释内容*/\n或 //单行注释";

printf("\n//1 position : '%c'", c); //......
a=b; //comments /*
x++; //...*/
等等
...
...
...
等等



 waker 回复于:2005-07-19 12:01:49

俺只想再考虑一下mess1="注释方法:\n/*注释内容*/\n或 //单行注释";
printf("\n//1 position : '%c'这种情况,没想到还有

//comments /*
x++; //...*/ 

:mrgreen:


 yyy_zc 回复于:2005-07-19 16:49:49

谢谢大家的关注,最主要的问题是如何去掉跨行的注释如下
code1 /* comments
 comments */ code2
如何保留code1及code2,具我所学,sed仅能处理行
请指教,谢谢!


 honbj 回复于:2005-07-19 17:30:30

引用:原帖由 "yyy_zc" 发表:
谢谢大家的关注,最主要的问题是如何去掉跨行的注释如下
code1 /* comments
 comments */ code2
如何保留code1及code2,具我所学,sed仅能处理行
请指教,谢谢!



就这种情况我想waker已经说清楚了  :idea:


 welcome008 回复于:2005-10-11 13:00:10

引用:原帖由 "waker"]
 发表:



看的头都大了,解释一下?


 plealo 回复于:2005-10-11 15:37:17

NB , 只是不了解 s///  , 替換什麼?


 lxr01 回复于:2005-10-11 15:48:37

waker  人才 厉害


 plealo 回复于:2005-10-11 18:01:36

①sed -e '/^[   ]*\/\/.*$/d
②/\/\/.*$/s///
③/\/\*.*\*\//s///g
④/\/\*/{ :a;N;s/\/\*.*\*\///g;tc;ba;:c }'  file


引用:原帖由 "plealo"]NB , 只是不了解 s///  , 替換什麼?
 发表:


測試才知道/parttern/s///替換/parttern/為空;
同樣/parttern/s//replacement/  替換/parttern/為'replacement'; 

①/^[   ]*\/\/.*$/d  好像沒有什麼用,已經被②包含 ?




原文链接:http://bbs.chinaunix.net/viewthread.php?tid=579268
转载请注明作者名及原文出处



收藏本页到: