LinuxSir.cn,穿越时空的Linuxsir!

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

问个问题...

[复制链接]
发表于 2008-6-19 09:41:10 | 显示全部楼层 |阅读模式
我想在我的目录下实现对所有子目录和文件的查找替换,把一个字符串更改为另外一个,要保存,要怎么做啊?
发表于 2008-6-19 10:11:15 | 显示全部楼层
find targetdir -depth -name "[!.]*" -exec mv {} {}.new \;

find命令本身就能递归处理,但默认是广度优先,加上参数“--depth”就能按深度优先处理。
回复 支持 反对

使用道具 举报

发表于 2008-6-19 10:15:08 | 显示全部楼层
文件名中有空格时会出问题。
不知道有没有什么好的解决办法。
回复 支持 反对

使用道具 举报

发表于 2008-6-19 11:42:53 | 显示全部楼层
Post by whitelilis;1863917
文件名中有空格时会出问题。
不知道有没有什么好的解决办法。

试了一下,有空格没问题的。find在这一点上做的还挺好的。
回复 支持 反对

使用道具 举报

发表于 2008-6-19 14:04:54 | 显示全部楼层
有空格加 -print0
回复 支持 反对

使用道具 举报

发表于 2008-6-19 14:07:19 | 显示全部楼层
原真是,呵呵。忘记那个问题是怎么回事了,反正是遇到过一个很郁闷的问题。
谢谢楼上。

别外,楼主的意思好像是要改文件里的内容吧,不是改文件名。
我看可以这样做
find ./ -name "---" -exec sed -i -e 's/旧字符/新字符/g' {} \;
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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