【发布时间】:2016-11-18 10:53:18
【问题描述】:
我想在几个文件中查找字符串“foo”并将其替换为“bra”,遍历目录(Linux 机器)。如果文件“example.txt”中的字符串被替换,我需要在替换字符串之前将该文件复制到“example.text.old”。
我可以像这样递归地替换字符串是文件:
find . -type f -name '*' -exec sed -i 's/test1/test2/g' {} +
它工作正常,但当某些东西不起作用时没有备份。
另外,我偶然发现了这个有效的 perl 脚本,尽管我更喜欢使用原生 unix 命令。
# perl -e "s/old_string/new_string/g;" -pi.save $(find DirectoryName -type f)
但是,这会备份 ALL 文件,这不是我想要的。
【问题讨论】:
标签: bash unix replace cygwin backup