+ -
当前位置:首页 → 问答吧 → perl 读取文件文件

perl 读取文件文件

时间:2010-08-26

来源:互联网

  1. #!/usr/bin/perl -w
  2. use strict;

  3. my $filename = 'ip.log';
  4. open( my $FD, '<', $filename ) or "die fucked $!";
  5. my $values = do {local $/;<$FD>;};
  6. close $FD;

  7. my @iplist = split /\n/ => $values;

  8. foreach my $i ( @iplist ) {
  9.     print "$i\n",";";
  10. }
复制代码


我的ip.log 里面的格式是这样的
61.159.0.0/18
61.161.0.0/18
61.161.128.0/17
61.162.0.0/16
61.163.0.0/16
61.167.0.0/16
61.168.0.0/16
61.176.0.0/16
61.179.0.0/16
61.180.128.0/17
61.181.0.0/16
61.182.0.0/16
61.189.0.0/17
61.240.0.0/14
61.48.0.0/14
61.52.0.0/15
我现在想实现的是在子网掩码后面加上个;
最终格式想变成这样
61.159.0.0/18;
61.161.0.0/18;
61.161.128.0/17;
61.162.0.0/16;
61.163.0.0/16;
61.167.0.0/16;
61.168.0.0/16;
61.179.0.0/16;
61.180.128.0/17;
61.181.0.0/16;
61.182.0.0/16;
61.189.0.0/17;
61.240.0.0/14;
61.48.0.0/14;
61.52.0.0/15;

现在这个脚本的问题是他 ";" 是加了但是是跑到IP的前面去了,变成这样了
;61.159.0.0/18
;61.161.0.0/18
;61.161.128.0/17
;61.162.0.0/16
;61.163.0.0/16

请教下高手们问题出在哪

作者: mitmax   发布时间: 2010-08-26

print "$i\n",";";

作者: yybmsrs   发布时间: 2010-08-26



QUOTE:
print "$i\n",";";
yybmsrs 发表于 2010-08-26 17:44




     print "$i\n",";";

跟我上面的是一样的.

作者: mitmax   发布时间: 2010-08-26

回复 mitmax


    汗  我是说你这一行错了。。。

作者: yybmsrs   发布时间: 2010-08-26

print "$i;\n";

作者: ddgfff   发布时间: 2010-08-26

不用那么复杂

perl -pe 's/$/;/'  ip.log

作者: 99超人   发布时间: 2010-08-26

顶楼上

作者: Mr-Summer   发布时间: 2010-08-26

perl -pe 's/$/;/'  ip.log  也是反的
print "$i;\n"; 也是不行的

作者: mitmax   发布时间: 2010-08-26