我一直在试图编写一个Perl脚本来替换我的项目的所有源文件中的一些文本。我需要的是这样的:是否有一种简单的方法来执行批量文件文本替换?
perl -p -i.bak -e "s/thisgoesout/thisgoesin/gi" *.{cs,aspx,ascx}
但是,分析所有的目录递归的文件。
我刚开始的脚本:
use File::Find::Rule;
use strict;
my @files = (File::Find::Rule->file()->name('*.cs','*.aspx','*.ascx')->in('.'));
foreach my $f (@files){
if ($f =~ s/thisgoesout/thisgoesin/gi) {
# In-place file editing, or something like that
}
}
但现在我卡住了。有一种简单的方法可以使用Perl编辑所有文件吗?
请注意,我不需要保留每个修改文件的副本;我有“时间都subversioned =)
更新:我想这对Cygwin,
perl -p -i.bak -e "s/thisgoesout/thisgoesin/gi" {*,*/*,*/*/*}.{cs,aspx,ascx
但它看起来像我的参数列表爆炸所允许的最大尺寸。事实上,我得到很奇怪的错误在Cygwin ...
您应该注意到您正在运行Windows。 – 2008-10-30 04:19:33