删除 C语言注释

sh/bash/dash/ksh/zsh等Shell脚本
回复
slimhigh
帖子: 67
注册时间: 2010-05-06 19:29

删除 C语言注释

#1

帖子 slimhigh » 2011-11-06 23:34

假设有一组C语言文件,这些文件开头都有几行注释。注释内容的第一行行首有/*,注释结束行只有*/没有其它内容。编写一个脚本,删除这些注释。

我是这样写的:

代码: 全选

#!/bin/sh
for file in "$@" ; do
	begin=`grep -nm1 '/\*' $file | cut -d':' -f1`
	end=`grep -nm1 '\*/' $file | cut -d':' -f1`
	sed -n $begin,$end'!p' $file
done
大家有更好的方法吗?求指导。
头像
YeLee
论坛版主
帖子: 26406
注册时间: 2008-08-13 8:48
系统: Fundu i64
来自: 东海硇州,一双管钥。
联系:

Re: 删除 C语言注释

#2

帖子 YeLee » 2011-11-07 11:12

我在想,假如那个注释是跨行的,或者是//开头的……
码盲,码盲,楼主不要见怪
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
头像
fanhe
帖子: 2357
注册时间: 2007-03-24 23:45

Re: 删除 C语言注释

#3

帖子 fanhe » 2011-11-10 23:44

差不多能用就行了, 又不是要写编译器

建议稍微完善的点是, 先寻找 /* , 然后为起点往后正则匹配 */, 删除起点到终点间的所有代码, 删除后起点行和重点行只有空格或者空, 也删除之
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 删除 C语言注释

#4

帖子 eexpress » 2011-11-11 9:12

perl支持$_ @_随便转换,就是单行多行随时切换。
● 鸣学
头像
leeaman
帖子: 30702
注册时间: 2007-02-02 18:14
系统: debian sid

Re: 删除 C语言注释

#5

帖子 leeaman » 2011-11-11 9:16

干吗删除....留着多好
醉了星星,醉月亮●●●●●The Long Way To Go(*^_^*)
回复