如何替换 Mac 文件夹中的所有文本?

如何替换 Mac 文件夹中的所有文本?

在 Mac OS 中,如何在所有目录及其子目录中查找和替换特定文本?

答案1

使用find(1)sed(1)

# Find all files under the directory hierarchy rooted at 'root', and replace
# all instances of the regular expression 'pattern' with 'replacement' in all
# of those files:
find root -type f -exec sed -i~ 's/pattern/replacement/g' '{}' '+'

如果遇到命令行长度限制,请将'+'末尾的 替换为';'。这将使其运行速度变慢(因为它要为每个文件分叉一个新进程),但不会存在命令行过长的危险sed

您还可以通过添加适当的过滤器仅对某些文件进行替换find(例如,-name *.txt仅替换 .txt 文件)。

相关内容