我试过在这里寻找答案而且我发现了一些,但它们似乎对我不起作用。我想重命名一个项目文件,我发现最简单的方法是在每个文件中替换它的名字,并且在目录中也替换每个文件名。
有人可以指点我(在Windows或Linux中)以递归方式替换每个文件和每个文件名目录中的字符串,并使用另一个字符串吗?
我将非常感谢你的帮助。
答案 0 :(得分:0)
在Unix中,您可以在bash shell中执行此操作。您必须使用查找, mv 和 sed 以及以下三个命令作为示例:
将字符串“ABC”替换为每个目录的名称中的“345” 在当前目录或子目录中递归。
find . -depth -type d -name "*ABC*" -exec bash -c 'dir=${1%/*} base=${1##*/}; mv "$1" "$dir/${base//ABC/345}"' par0 {} \;
将字符串“ABC”替换为“345”在每个文件的名称中 当前目录或递归中的子目录。
find . -depth -type f -name "*ABC*" -exec bash -c 'dir=${1%/*} base=${1##*/}; mv "$1" "$dir/${base//ABC/345}"' par0 {} \;
在每个文件的内容中用“345”替换字符串“ABC” 在当前目录或子目录中递归。
find . -depth -type f -name "*" -exec bash -c 'sed -i "s/ABC/345/g" "$1"' par0 {} \;