Linux a2p 命令

Linux a2p 命令

Linux a2p 命令主要用来在命令行下将awk脚本文件转换成可以实现相同功能的Perl脚本,并将代码输出到标准输出上。

Linux a2p 命令参数

A2p [选项] [文件名]

选项说明:

-D<number> : 设置脚本调试标记。
-F<character> :  该选项可以让a2p命令认为awk脚本会指定-F选项来执行
-n<fieldlist> :   如果输入不能被拆分成数组,那么需要输入并通过特殊符号分割的字段名。 如: a2p -7 -nlogin.password.uid.gid.gcos.shell.home

-<number> :   让a2p命令始终认为输入会包含多字段。
-o  :  告诉a2p使用旧的awk行为。

Linux a2p 命令实例

假如在当前目录下有一个名为fio.awk 的awk脚本文件,那么可以执行下面的a2p命令来将该脚本转换成perl语言的代码。

执行命令如下:

#a2p fio.awk

命令输出如下:

[root@Devops ~]# cat fio.awk
#! /usr/bin/awk -f
BEGIN {
    x=0
    do {
        print x;
        x+=1;
    }
    while(x<=10);
}
[root@Devops ~]# a2p fio.awk

#!/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

$, = ' ';                   # set output field separator
$\ = "\n";                  # set output record separator
$X = 0
do {
    print $X;
    $X += 1;
} while ($X <= 10);

这个命令将会先读取fio.awk脚本文件,然后将实现相同功能的perl脚本代码输出到标准输出。 如果你想将输出的perl代码保存到一个文件里,那么可以执行下面的命令:

#a2p fio.awk >fio.pl

命令输出如下:

[root@Devops ~]# a2p fio.awk >fio.pl

[root@Devops ~]# ls fio.pl
fio.pl

 

Leave a Reply