linux sed 批量替换多个文件中的字符串

sed -i "s/oldstring/newstring/g" `grep oldstring -rl yourdir`

例如:替换/home下所有文件中的www.admin99.net为admin99.net

sed -i "s/www.admin99.net/admin99.net/g" `grep www.admin99.net -rl /home`

这个` 符号是F1下边,tab键上边,数字1左边的那个,不是单引号 '

简单吧,就这么简单,不过我真傻,以前为了实现这个功能,居然写了N长的一个shell.........那个寒啊~~
linux系统相关 | 评论(4) | 引用(0) | 阅读(9152)
gakaki
2009/05/31 19:01
sed -i "s/chp2050.user.free.77169.net/1/g" 'grep chp2050.user.free.77169.net -rl /d/saobaozuwww'sed: can't read grep chp2050.user.free.77169.net -rl /d/saobaozuwww/*: No such file or directory
real 回复于 2009/06/05 15:07
'grep chp2050.user.free.77169.net -rl /d/saobaozuwww'
这个地方是` 不是 '   F1键的下边,tab键的上边
ss
2009/03/17 17:39
如归把要替换的文件和路径放一个地方保存起来,应该怎么改?
cocobear Email Homepage
2008/04/03 09:06
既然知道要替换的字符串,sed就可以做到查询了,后面的grep是多余的,可以直接写为

sed -i 's/oldstring/newstring/g' *
real 回复于 2008/04/03 13:06
如果所有待处理的文件都在一个文件夹下,可以这么写。
如果所有待处理的文件处于多个文件夹下,这样写会报错,因为sed无法处理文件夹,必须加上 "grep -rl",这样可以跳过文件夹而直接列出文件。
jerry
2007/07/05 11:28
太实用的一个命令了。
分页: 1/1 第一页 [1] 最后页
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
昵称   密码   游客无需密码
网址   电邮   [注册]
               

验证码 请输入左侧的字母,不区分大小写