如何替换所有"*******"形式的字符串啊,谢谢![问题已解决]

Vim、Emacs配置和使用
回复
guang3000
帖子: 11
注册时间: 2012-03-24 12:48

如何替换所有"*******"形式的字符串啊,谢谢![问题已解决]

#1

帖子 guang3000 » 2012-09-30 19:42

要编辑的文档里面有几百个"*******"形式的字符串,*是字母或数字,

例如corAddCorner( "umc35" "ssss100" )

怎么把每个字符串后面加个相同字符_50m啊,

例如"ssss100"改为"ssss100_50m",请高手指点,谢谢!
上次由 guang3000 在 2012-09-30 20:37,总共编辑 1 次。
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

Re: 如何替换所有"*******"形式的字符串啊,谢谢!

#2

帖子 枫叶饭团 » 2012-09-30 20:02

代码: 全选

sed -i 's/sss100/&_50m/' file
头像
cjxgm
帖子: 1952
注册时间: 2010-04-23 20:40
系统: Arch Linux
来自: 浙江·杭州
联系:

Re: 如何替换所有"*******"形式的字符串啊,谢谢!

#3

帖子 cjxgm » 2012-09-30 20:03

如果是 vim:

代码: 全选

:%s/"\([^"]\+\)"/"\1_50m"/g
如果用 sed:

代码: 全选

sed -i 's/"\([^"]\+\)"/"\1_50m"/g' file.c
emacs 我不知道怎么做正则,我不是 emacs 用户
Clanjor Prods. | Develop for Developers. (C++, Lua) | 作曲编曲 | 实时渲染引擎
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

Re: 如何替换所有"*******"形式的字符串啊,谢谢!

#4

帖子 枫叶饭团 » 2012-09-30 20:13

代码: 全选

sed "s/\w\{7\}/&_50m/"
guang3000
帖子: 11
注册时间: 2012-03-24 12:48

Re: 如何替换所有"*******"形式的字符串啊,谢谢!

#5

帖子 guang3000 » 2012-09-30 20:14

cjxgm 写了:如果是 vim:

代码: 全选

:%s/"\([^"]\+\)"/"\1_50m"/g
如果用 sed:

代码: 全选

sed -i 's/"\([^"]\+\)"/"\1_50m"/g' file.c
emacs 我不知道怎么做正则,我不是 emacs 用户

试了下,其它的字符串也变了,例如

corAddCorner( "umc35" "ssss100" )

变为了

corAddCorner( "umc35_50m" "ssss100_50m" )

我只需改变这后面格式的一共9个字符的字符串,能帮忙改下吗,谢谢!
头像
cjxgm
帖子: 1952
注册时间: 2010-04-23 20:40
系统: Arch Linux
来自: 浙江·杭州
联系:

Re: 如何替换所有"*******"形式的字符串啊,谢谢!

#6

帖子 cjxgm » 2012-09-30 20:16

代码: 全选

:%s/"\([^"]\{7\}\)"/"\1_50m"/g
上次由 cjxgm 在 2012-09-30 20:18,总共编辑 1 次。
Clanjor Prods. | Develop for Developers. (C++, Lua) | 作曲编曲 | 实时渲染引擎
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

Re: 如何替换所有"*******"形式的字符串啊,谢谢!

#7

帖子 枫叶饭团 » 2012-09-30 20:18

那就成这样子了?

代码: 全选

sed 's/\"\(\w\{7\}\)\"/\1_50m/'
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

Re: 如何替换所有"*******"形式的字符串啊,谢谢!

#8

帖子 枫叶饭团 » 2012-09-30 20:18

『我有一個問題,於是我想用正則,現在我有兩個問題。』
guang3000
帖子: 11
注册时间: 2012-03-24 12:48

Re: 如何替换所有"*******"形式的字符串啊,谢谢!

#9

帖子 guang3000 » 2012-09-30 20:35

cjxgm 写了:

代码: 全选

:%s/"\([^"]\{7\}\)"/"\1_50m"/g

问题解决了,谢谢大家!
gy619
帖子: 237
注册时间: 2011-10-11 10:16

Re: 如何替换所有"*******"形式的字符串啊,谢谢!

#10

帖子 gy619 » 2012-09-30 20:48

emacs 有很多方法:
如果" ) 是固定的,可以直接用替换的方法,简单的很. 直接批量替换.
用正则也可以,大概就是匹配 \"\s\) ,正则替换
回复