擅长:python、mysql、java
<p>我将使用<code>sed -i</code>(就地替换)进行内容替换,使用<code>find|while read</code>循环进行重命名。在</p>
<p>以下是BSD sed(Mac上的标准)版本:</p>
<pre><code>find . -type f -exec sed -e s/ModuleName/TestModule/g -i '' '{}' ';'
find . -depth -name '*ModuleName*' -print0|while IFS= read -rd '' f; do mv -i "$f" "$(echo "$f"|sed -E 's/(.*)ModuleName/\1TestModule/')"; done
</code></pre>
<p>下面是GNU-sed:</p>
^{pr2}$
<p><code>while read</code>中的额外细节是正确处理带有空格和其他奇怪字符的任意文件名。一些快速测试表明zsh<code>read</code>现在可以正确处理以null结尾的字符串;如果有问题,请尝试在bash中运行它。在</p>