LinuxSir.cn,穿越时空的Linuxsir!

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

如何在多个文件中替换字符串?

[复制链接]
发表于 2003-3-23 14:06:52 | 显示全部楼层 |阅读模式
在BASH下如何把指定目录下的所有文件(包含所有子目录下的所有文件)中的指定字符串替换成另一个个字符串?以root登陆,对所有文件有读写权。请给出整个命令,谢谢!!!
发表于 2003-3-23 15:09:37 | 显示全部楼层
javalee//home/javalee>grep -r '\<Tom\>' *|sed -n 's/Tom/汤母/p'
-r 用于对子目录作递归
*  所有文件,或者file1...filen
 楼主| 发表于 2003-3-24 13:02:36 | 显示全部楼层
\<Tom\>是原字符串而s/Tom/汤母/p是替换后的字符串吗?
发表于 2003-3-24 16:24:07 | 显示全部楼层
yeah
 楼主| 发表于 2003-7-31 21:35:49 | 显示全部楼层
如果出现关键字是以“-”(负号)开始应该怎么办?
 楼主| 发表于 2003-7-31 22:26:43 | 显示全部楼层
是不是用“\”转义?
发表于 2003-7-31 23:01:10 | 显示全部楼层

不太妥

grep会列出所有包含给定字符串的行的内容,
而sed则将它们替换掉,可是所有的东西都只是显示而已。
实际上并没有替换文件内容 ;)
发表于 2003-8-1 15:30:13 | 显示全部楼层

回复: 不太妥

最初由 gurulite 发表
grep会列出所有包含给定字符串的行的内容,
而sed则将它们替换掉,可是所有的东西都只是显示而已。
实际上并没有替换文件内容 ;)

有道理!
那就再用重定向处理一下吧;)
发表于 2003-8-1 19:00:17 | 显示全部楼层
I think you should learn sed by youself, and let javalee have a good sleep. If you encounted some problem you cann't settle, welcome you come to linuxsir!!!!
发表于 2003-8-1 22:03:19 | 显示全部楼层
最初由 lordbyorn 发表
I think you should learn sed by youself, and let javalee have a good sleep. If you encounted some problem you cann't settle, welcome you come to linuxsir!!!!


由于最近自己乱七八糟的事情很多,很容易....,再说本人水平确实太有限,难免有什么差错,望谅解:sorry.....也感谢兄弟们对我的帮助
没别的事,那我就------
洗洗sleep啦~~~;)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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