windows - 如何在文件夹中的所有文件中执行文本替换?

标签 windows perl text replace

我需要更新大量 .xml 文件中的单个参数。我四处阅读并在 Windows 命令行中使用一行 perl 我可以让它一次替换一个文件,但我正在努力让 perl 一次完成所有文件。

perl -pi.bak -e "s/(\d+\.\d+E-\d+)/2.2E-6/g;" test.xml

这行得通,但是当我尝试将其更改为类似

perl -pi.bak -e "s/(\d+\.\d+E-\d+)/2.2E-6/g;" *.xml

我收到“无法打开 *.xml:无效参数”

perl -pi.bak -e "s/(\d+\.\d+E-\d+)/2.2E-6/g;" .xml

给我“无法打开 .xml:没有那个文件或目录”

我试着看看我是否可以使用 system() 从另一个 perl 脚本中调用它,但这似乎与引号的使用有关,而且可能不是执行此操作的最佳方法。

总结:

问题 - 我有大量 .xml 文件,我想在其中更改单个参数。我必须能够在 Windows 机器上执行此操作,理想情况下,我想找到一个解决方案,使我能够在脚本中自动执行此操作,这样我就可以循环遍历大量参数值替换(通过调用一个单独的程序)将 .xml 文件作为替换之间的输入)。

感谢您提供的任何帮助。

最佳答案

试试这个:

for /r %i in (*.xml) do perl -pi.bak -e "s/(\d+.\d+E-\d+)/2.2E-6/g;" %i

关于windows - 如何在文件夹中的所有文件中执行文本替换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5352577/

相关文章:

text - 在 TeX/LaTeX 中将换行符写入文件

python - 强制从python中删除windows目录

python - nltk StanfordNERTagger : NoClassDefFoundError: org/slf4j/LoggerFactory (In Windows)

perl在两个关键字之间抓取文本

perl - 为 perl die 消息着色

perl - 如何将可变长度的行分配给perl中的变量?

Delphi - 在矩形中心绘制文本多行

java - 作为 Windows 服务运行时,如何增加 Tomcat 7 的内存?

windows - 什么是适用于 Windows 的优秀开源调试器和内存分析器?

html - CSS 悬停在框上会使文本抖动