while continue 更新文件

来源:互联网 发布:js email正则表达式 编辑:程序博客网 时间:2024/06/16 11:54
zjzc01:/root/dbi# cat a1.pl my $a = $ARGV[0];my $b = $ARGV[1];my $c = $ARGV[2];my $d = $ARGV[3];my $f = $ARGV[4];my $g = $ARGV[5];open MEGADATA , ">>a.txt" or dir $!;my $record = join (":",$a,$b,$c,$d,$e,$f,$g);print MEGADATA "$record\n";zjzc01:/root/dbi# cat a.txt ::::::a:b:c:d::e:##########下面脚本不匹配直接跳过,continue写入,匹配进行修改,在continue里写入:用术语来解释的话,就是说,\Q 取消所有元字符的含义直到遇见 \E 为止。zjzc01:/root/dbi# cat a.txt a:b:c:d:e1:2:3:4:5zjzc01:/root/dbi# cat a2.pl my $megalithFile = $ARGV[0];my $siteName = $ARGV[1];my $siteMapRef = $ARGV[2];my $tempFile = "tmp.$$";open MEGADATA ,"<$megalithFile" or die $!;open TMPEGADATA ,">>$tempFile" or die $!;while (<MEGADATA>){##不匹配跳过,不修改,下面continue写入print "\$_ is $_\n";next unless m/^\Q$siteName:/;my($name,$location,$mapref,$type,$description) = split(/:/,$_);##跳过如果 $siteName 不等于$namenext unless $siteName eq $name;$mapref=$siteMapRef;$_=join(":",$name,$location,$mapref,$type,$description);print "\$_ is $_\n";}continue { print TMPEGADATA $_."\n"};修改后为:zjzc01:/root/dbi# cat tmp.22884 a:b:x:d:e1:2:3:4:5

0 0
原创粉丝点击