【发布时间】:2010-10-28 01:04:58
【问题描述】:
我有一个项目,其中有文件夹、子文件夹和文件。我需要在每个文件中用单词 Bond 替换 Masi。
我运行以下名为 replace 的 Sed 脚本失败
s/Masi/Bond/
在 Zsh 中由
sed -f PATH/replace PATH2/project/**
它给了我所有文件,包括那些没有 Masi 的文件,作为输出。
Sed 不一定是完成任务的最佳工具。 我对 Python 和 Perl 很感兴趣。
您将如何在 Sed/Perl/Python 中进行替换,以便仅更改文件内容?
【问题讨论】:
-
要替换文件名中的字符串还是文件内容中的字符串?
-
是什么让您认为 sed 可以重命名目录?为什么不使用“mv”或其他重命名文件的命令?
-
@fmarc:我想替换文件内容中的字符串,而不是文件名中的字符串。
-
如果您选择 sed 路线,您可能希望 s/Masi/Bond/g(注意 g)替换所有 Masi 实例,而不仅仅是一行中的第一个。