python - 如何替换多个文件中的字符串?

标签 python linux perl sed

我想替换出现在多个文件中的字符串。对于单个文件,我可以使用 unix 命令来完成:

sed 's/error("/printf( "ERROR : /g' all_reset_test.c > new_reset/all_reset_test.c 

将文件中的所有 'error("' 替换为 'printf( "ERROR : '

但是我有 100 多个文件需要执行此操作。我正在寻找如何在 perl 或 python 脚本中一次对所有文件运行此命令。

最佳答案

你可以使用sed的选项-i

引用自 sed 的联机帮助页:

-i[SUFFIX], --in-place[=SUFFIX]

      edit files in place (makes backup if extension supplied)

如果省略后缀,sed 将不会在修改文件之前创建备份。

在你的情况下

sed -i 's/error("/printf( "ERROR : /g' *.c

应该可以完成这项工作(无需 pyhton、perl 或 bash 循环)。

关于python - 如何替换多个文件中的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25406340/

相关文章:

arrays - 如何在过滤掉匹配项的同时对数组进行 grep?

class - Perl 中的对象属性访问

regex - 可以匹配正值和负值的 Perl 正则表达式

python - python中的其余部分

linux - bash 脚本从上次失败的地方执行

python - 使用 Seaborn 的 FacetGrid 自定义注释

linux - ubuntu 13.10 中的 linsched 错误

linux - 对不同文件运行命令并存储输出结果

python - 消息实例在 Google 应用引擎邮件接收中没有属性 'read'

javascript - 在 Jupyter/iPython notebook 中以图形方式选择几何对象