使用Perl代码在多个.txt文件上应用多个查找和替换正则表达式查询

时间:2015-08-02 17:21:11

标签: regex windows perl

我试图在Windows代码上找到一个Perl,它允许我在特定目录中的多个文件上应用多个查找和替换正则表达式查询。我可以使用许多文本编辑器(例如UltraEdit)应用多个查找和替换正则表达式查询。

2 个答案:

答案 0 :(得分:3)

您的问题不是很具描述性。这样做你想要的吗?

已编辑在Windows上工作

perl -i.bak -pe"BEGIN {@ARGV = map glob, @ARGV} s/a/b/g; s/c/d/g; s/e/f/g; " My/Files/Directory/*.txt

更新

除非您只进行一些更改,否则最好将替换命令放在文件中,例如

changes.pl

BEGIN {
    @ARGV = map glob("\"$_\""), @ARGV;
}

s/a/b/g;
s/c/d/g;
s/e/f/g;

然后你可以在命令行上的一组文件上运行它,就像这样

perl -i.bak -p changes.pl My/Files/Directory/*.txt

答案 1 :(得分:1)

这是一个基本的perl程序(可能命名为myreplacers.pl),可以做到这一点:

#!/usr/bin/perl

use strict;
use warnings;

while(<>) {
  s/regex1/replace1/;
  s/regex2/replace2/;
  print;
}

使用适当的正则表达式和替换文本进行更改,并像perl myreplacers.pl file1 file2等一样运行