Perl 一段非常有用的代码,用来修改文件并备份

需求:

文件系统上有N个文件,他们都是.dat的文本文件,内容形式如下(类似于一个状态卡):

Program name: grantie

Author: Jackie

Company: Symantec

Department: QA

Phone: +86 1234 5678

Date: Tues March 9, 2013

Version: 1.1

Size: 11k

Status: Final beta

需要将上述的信息修改成如下的样子:(修改Author信息 Date改成当前日期 去掉Phone信息)

Program name: grantie

Author: Tom

Company: Symantec

Department: QA

Date: 当前日期

Version: 1.1

Size: 11k

Status: Final beta

 

Code:

use strict;
use warnings;
use utf8;

chomp(my $date = `date`);
$^I = '.bak';

while(<>){
    s/^Author:.*/Author: Tom/;
    s/^Phone:.*\n//;
    s/^Date:.*/Date: $date/;
    print;
}

其中 $^I = '.bak'; 中的 $^I 与<> 结合使用时,会生成一个后缀为.bak(hehe.dat生成hehe.dat.bak),前面与源文件名相同的备份文件,内容也是相同的。

然后对源文件的每一行做正则替换之后写到<>打开的文件句柄中。

 

posted @ 2014-08-07 15:20  EthanChou  阅读(1451)  评论(1)    收藏  举报