分页: 1 / 1
[问题]在emacs中进行有条件替换?(已解决)
发表于 : 2006-06-29 18:24
由 lazyquail
比如说我现在有两列数据:
1.5 Mbits
1.2 Mbits
234 Kbits
1.4 Mbits
我想要说:如果第二列数据是Kbits,那么就把第一列的数据除以1000,不知道这样的操作在emacs里怎么实现?
发表于 : 2006-06-29 21:29
由 phenics
如果想要交互式的做的话, 好像没有什么好的方式, 除非自己写一个完成这样功能的命令.
发表于 : 2006-06-30 5:04
由 lazyquail
嗯,如果能给出来一点线索也好,呵呵,现在感觉无从下手啊,期待~~
发表于 : 2006-06-30 18:24
由 phenics
请问一定要用emacs来做吗, 这种事情好像用个shell更简单些, 把你的问题再具体的说说吧, 大家帮你想想看..
发表于 : 2006-07-20 20:48
由 pluskid
lazyquail 写了:嗯,如果能给出来一点线索也好,呵呵,现在感觉无从下手啊,期待~~
如果熟悉正则表达式和elisp的话,对于每一行,做一个匹配,前面一个是数字,后面一个 Kbits ,如果匹配成功,就
替换成前面一个除以一千以后的结果……
发表于 : 2006-07-20 23:24
由 5451vs5451
这种事情不是emacs的强项。
awk '/Kbits/{$1/=1000}{print $1}' data
发表于 : 2006-08-01 19:18
由 lazyquail
这个问题后来我是用awk来解决的,也不算是特别的麻烦;现在了解到还可以利用emacs里定义macro来实现同样的功能,只是看别人演示过,没有自己做。虽然知道emacs不是什么功能都可以实现,但是能完成这样的编辑还是让我感觉到它强大的力量:)
正则表达式和elisp不熟,不过会找些资料来看。谢谢楼上的各位。