Perl script 扫描指定文件夹replace string

# by online.cxfan@gmail.com

($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
$dstDIR_ext = "\_$mon$mday\_$hour$min$sec";

#print "dstDIR_ext:$dstDIR_ext\n";

my $srcDIR = $ARGV[0];
my $dstDIR = $ARGV[0]."$dstDIR_ext";

print "\n ============================ \n";
print "$srcDIR\n";
print "$dstDIR\n";

opendir SRC_DIR ,$srcDIR || die "cant open $!";

# create a new directory to restore the files after replaced. 
mkdir $dstDIR || die "cant open $!"; 

# scan file in directory 
foreach my $file (readdir SRC_DIR) {

	open(FILE_IN, $file);
	open(FILE_OUT, ">$dstDIR\\$file");
	
	print "\n ======================== Proccess file $file \n";
	
    while(<FILE_IN>)
	{
	    $line = $_;

		# original line;
		$line_bak = $line;
		
		# line after replace
		$line =~ s/(\[ENG-SPEC\]-\[Req-[S|P|E]-[0-9]{3}-[0-9]{3}-[0-9]{3}\])(-[1-9]{1})/$1-0/g;
	
		if ($line)
		{
			print FILE_OUT $line;
		}
		else
		{
			print FILE_OUT $line_bak;
		}
	}
	
	#print "\n ======================== end file $file \n";
	
	close(FILE_OUT);
	close(FILE_IN);

}

closedir SRC_DIR ,$srcDIR;
closedir DST_DIR ,$dstDIR;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值