开源是一种精神,分享是一种美德!

a2p

相关命令:暂无相关命令
a2p 从命令行或标准输入取得一个awk脚本文件, 并且向标准输出产生一个相同功能的 perl 脚本文件。

可选选项有:
-D<number>    设置调试标记。
-F<character>    告诉a2p,awk脚本总是带 -F 选项执行。
-n<fieldlist>    如果输入不分解为一个数组,你需要指定输入的各字段的名称。
-<number>    使得a2p总是假设输入包含那么多字段。
-o    告诉a2p使用旧的awk行为。当前,唯一的区别是旧的awk总是有一个 每行的循环,即使没有对每行的操作;新的awk不是这样。

将awk脚本转换成perl脚本

[zhangy@BlackGhost ~]$ a2p abc.sh 
#!/usr/bin/perl
eval 'exec /usr/bin/perl -S $0 ${1+"$@"}'
    if $running_under_some_shell;
                        # this emulates #! processing on NIH machines.
                        # (remove #! line above if indigestible)

eval '$'.$1.'$2;' while $ARGV[0] =~ /^([A-Za-z_0-9]+=)(.*)/ && shift;
                        # process any FOO=bar switches

$FS = ' ';              # set field separator
$, = ' ';               # set output field separator
$\ = "\n";              # set output record separator

$FS = h3';
$ccount = 0;

while (<>)       chomp; # strip record separator
    ($Fld1,$Fld2) = split($FS, $_, -1);

  #printf("%s%s,%s\n",$1,$2)
)
    @parts1 = split(/-/, $Fld1, -1
    @parts2 = split(/-/, $Fld2, -1);
    $mysystr = sprintf('%4d%2d%2d %4d%2d%2d', $parts1[(1)-1], $parts1[(2)-1],

      $parts1[(3)-1], $parts2[(1)-1], $parts2[(2)-1], $parts2[(3)-1]);
    $count += ($s = ' ', $mystr =~ s/$s/0/g);
    print $mystr;
}

print $cont /  2;

评论(0)

暂无评论

评论

名字:
验证码:
获取验证码
内容: