LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 702|回复: 4

向大家请教一个重复编辑的问题

[复制链接]
发表于 2004-9-7 10:00:07 | 显示全部楼层 |阅读模式
现有一C语言源代码文件,里面有多行
restart_tmo(XXX_TMO);
现在需要去掉中断部分,将其注释掉,变成:
/* restart_tmo(XXX_TMO); */
有时需要将注释取消还原成原来的样子。
现在我的实现方法是在EMACS中这样:
Alt+Shift+<                从文件起始处开始

C_s restart_tmo(           寻找含有"restart_tmo"的行
C_a C_space C_e            标记该行
C_c C_c 或者 C_u C_c C_c   注释 或 取消注释该行

能不错的完成任务,但稍嫌麻烦,请问大家在EMACS中有没有更好的方法实现这个功能。或者用SED实现?
发表于 2004-9-7 10:57:46 | 显示全部楼层
没用过emacs

  1. sed 's/restart_tmo(XXX_TMO);/\/\* &\*\//g' file
复制代码
 楼主| 发表于 2004-9-7 11:52:01 | 显示全部楼层
不好意思,开始的意思表达有误。
restart_tmo(XXX_TMO)中的XXX指的是匹配任意字母字符串。而且文件中每处XXX的值都不同,但确定是由字母组成的串。

多谢督导;)
发表于 2004-9-7 12:00:51 | 显示全部楼层
这样可以吗?
  1. sed 's/restart_tmo([a-zA-Z].*_TMO);/\/\* &\*\//g'
复制代码
 楼主| 发表于 2004-9-7 13:49:46 | 显示全部楼层
猛啊,呵呵

sed 's/restart_tmo([a-zA-Z].*_TMO);/\/\* & \*\//g' test.c > test1.c
sed 's/\(\/\* \)\(restart_tmo([a-zA-Z].*_TMO);\)\( \*\/\)/\2/g' test1.c >test.c

第一个是加注释,第二个是取消注释。:p
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表