Regex 目录中所有文件中的文本替换

Regex 目录中所有文件中的文本替换,regex,windows,perl,Regex,Windows,Perl,在windows 2008中,我们在一个目录中有多个文件。文件以路径作为内容,这些文本应替换为其他字符串。查找以下示例: 这些文件的路径如下所示: 文件1: C:\Apps\etc\A1\X.exe应替换为C:\Apps\exe\X.exe 文件2: C:\Apps\etc\B1\Y.exe应替换为C:\Apps\exe\Y.exe 我试图找到一个命令,它将取代上面提到的粗体字母字符串 对于普通字符串,我使用以下命令,它可以工作: perl -i.bak -pe "BEGIN{@ARGV = m

在windows 2008中,我们在一个目录中有多个文件。文件以路径作为内容,这些文本应替换为其他字符串。查找以下示例:

这些文件的路径如下所示:

文件1:

C:\Apps\etc\A1\X.exe应替换为C:\Apps\exe\X.exe

文件2:

C:\Apps\etc\B1\Y.exe应替换为C:\Apps\exe\Y.exe

我试图找到一个命令,它将取代上面提到的粗体字母字符串

对于普通字符串,我使用以下命令,它可以工作:

perl -i.bak -pe "BEGIN{@ARGV = map glob, @ARGV} s/string1/string2/g" ./*.txt 

但当前的需求似乎使用了正则表达式,对此我无法找到解决方案。

只需将etc\替换为a\之后的任何内容,再次使用Just exe:

's/etc\\[^\\]*\\/exe\\/g'

谢谢..它对我有用..如果我需要将'\\abc'替换为'a:\bc',那么表达式应该是什么呢..@user1706047:
在正则表达式中并不特殊,但是你需要两个反斜杠。我需要在合并到单个页面的html页面中设置一个分页符:因此我尝试替换“to”。我正在使用下面的命令,并将“&”作为sed命令中使用的匹配字符串。但它在这里不起作用。perl-i.bak-pe“BEGIN{@ARGV=map glob,@ARGV}s/perl使用
$&
变量而不是
&