为了账号安全,请及时绑定邮箱和手机立即绑定

在目录和子目录中查找并替换为sed

在目录和子目录中查找并替换为sed

繁星淼淼 2019-12-07 15:58:58
我运行以下命令以查找并替换网站根目录中所有文件中所有出现的“ apple”并替换为“ orange”:find ./ -exec sed -i 's/apple/orange/g' {} \;但是它不会通过子目录。此命令有什么问题?这是输出的一些行find ./:./index.php./header.php./fpd./fpd/font./fpd/font/desktop.ini./fpd/font/courier.php./fpd/font/symbol.php
查看完整描述

3 回答

?
四季花海

TA贡献1811条经验 获得超5个赞

您的发现应该看起来像这样,以避免将目录名称发送到sed:


find ./ -type f -exec sed -i -e 's/apple/orange/g' {} \;


查看完整回答
反对 回复 2019-12-07
?
月关宝盒

TA贡献1772条经验 获得超5个赞

对于较大的S&R任务,使用grep和xargs更好,更快。


grep -rl 'apples' /dir_to_search_under | xargs sed -i 's/apples/oranges/g'


查看完整回答
反对 回复 2019-12-07
?
暮色呼如

TA贡献1853条经验 获得超9个赞

这为我工作:


find ./ -type f -exec sed -i '' 's#NEEDLE#REPLACEMENT#' *.php {} \;


查看完整回答
反对 回复 2019-12-07
  • 3 回答
  • 0 关注
  • 646 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信