递归查找和替换

时间:2013-03-25 01:10:18

标签: linux shell unix

我有一个包含大量文件夹和文件的文件夹。我想做一个查找并替换为:

  • 之前:'my_folder。'
  • 之后:''(空白)

这是我尝试过的(尽管它不起作用)

find ./ -type f -exec sed -i ‘s/my_folder.//’ {} \;

这里的命令是什么?

1 个答案:

答案 0 :(得分:0)

你正在寻找的命令,有点像这样:

find ./ -type f -exec sed -e "/my_folder./s/my_folder.//" {} \;

但你得到的只是屏幕上打印的输出,而不是写回文件。为了完成这样的事情,我认为你应该有多行代码,但这里的“意见”再次成为关键字。这样的事可能会有所帮助

for file in $(find ./ -type -f)
do
  cat ${file} | sed -e "/my_folder./s/my_folder.//" > MyTempFile
  cat MyTempFile > ${file} # use this instead of 'mv' command to preserve file perms
done

希望这会有所帮助