perl修改文件内容

perl语言入门中提到可以利用钻石操作符<>结合$^I变量对文件进行修改操作,但实际用起来不是十分顺手,以下是我认为比较顺手的方法。

perl可以利用Tie::File模块来直接对文件内容进行修改,测试的文档内容如下:

name = haha
age = 9
sex = male

程序将对age的值进行修改,代码如下:

 1 #!/usr/bin/perl
2 use strict;
3 use 5.010;
4 use Tie::File;
5 tie my @contents, 'Tie::File', './test_file' or die "can't open $!\n";
6 for(@contents){
7 s/(^age\s*=\s*)\d+/${1}90/;
8 }
9 untie @contents;
10 exit 0;

另外可以用一个perl命令行进行相同的操作:

perl -pi -e 's/(^age\s*=\s*)\d/${1}90/' test_file

另外再附上一个sed的操作:

sed -i -n -e 's/\(^age *= *\)[0-9]\+/\190/' test_file

另外最近网站数据库被爆的挺严重的,真心建议大家修改一下自己的密码。

程序写累了,冒个泡~~~~