您的位置:首页 > 其它

perl脚本修改文档

2015-07-17 14:05 351 查看
需要利用perl脚本修改文档内容,但linux下大多数命令都是将修改后的内容显示到屏幕,或者输入到新文档,不能对原文档进行修改。想到一个笨办法:将文档所有内容取出,存到内存,修改后利用“>myfile”将myfile内容覆盖掉。但是不甘心这么笨啊,我只要修改一两行代码,却要对整个文档进行“读取->写入”操作,不带这么委屈的程序猿的。

上网查了好久,没有满意答案,于是东拼西凑,终于把目标实现。今天一天的成果,就是写了下面这几行代码,心血啊~~这个必须记录下来,做菜鸟的感觉,相当痛苦啊。。。

10 @ARGV = "/etc/vsftpd/vsftpd.conf";

11 $^I = "";

12 while(<>){

13 s/^anonymous_enable=YES/anonymous_enable=NO/;

14 s/^local_enable=NO/local_enable=YES/;

15 print;

16 }

以上代码的关键在于$^I,$^I的值为空时,表示修改原文件;值为“.bak”时,会将修改后的文件命名为“myfile.bak”,而原文件内容不变。

<>为钻石操作符,while(<>)会读取由@ARGV指定的文件的每一行。如果在脚本中@ARGV未被赋值,则用户在命令模式下输入的文件名就会赋给@ARGV。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: