Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在AWK中调用Perl脚本_Perl_Awk_Ksh - Fatal编程技术网

在AWK中调用Perl脚本

在AWK中调用Perl脚本,perl,awk,ksh,Perl,Awk,Ksh,我有一个问题,我需要调用带有传入参数的Perl脚本,并在AWKBEGIN块中获取Perl脚本的返回值。就像下面一样 我有一个Perl脚本util.pl #!/usr/bin/perl -w $res=`$exe_cmd`; print $res; 现在在AWKBEGIN块(ksh)中,我需要调用脚本并获取返回值 BEGIN { print "in awk, application type is " type; } \ {ca

我有一个问题,我需要调用带有传入参数的Perl脚本,并在AWK
BEGIN
块中获取Perl脚本的返回值。就像下面一样

我有一个Perl脚本util.pl

#!/usr/bin/perl -w
$res=`$exe_cmd`;
print $res;
现在在AWK
BEGIN
块(ksh)中,我需要调用脚本并获取返回值

BEGIN { print "in awk, application type is " type;  
                    } \
            {call per script here;}
如何使用参数调用Perl脚本并获得
$res
的返回值

res = util.pl a b c; 

AWK脚本的一部分,用于从
ldap
查询中提取数据。也许你可以从我如何进行下面的base64解码中找到一些灵感

    /^dn:/{
        if($0 ~ /^dn: /){
            split($0, a, "[:=,]")
            name=a[3]
        }
        else if($0 ~ /^dn::/){
            # Special handling needed since ldap apparently
            # uses base64 encoded strings for *some* users
            cmd = "/usr/bin/base64 -i -d <<< " $2 " 2>/dev/null"
            while ( ( cmd | getline result ) > 0 ) { }
            close(cmd)
            split(result, a, "[:=,]")
            name=a[2]
        }
    }
/^dn:/{
如果($0~/^dn:/){
拆分($0,a,“[:=,]”)
名称=a[3]
}
else if($0~/^dn::/){
#显然需要特殊处理
#对*部分*用户使用base64编码字符串

cmd=“/usr/bin/base64-i-d将脚本导入
getline

awk 'BEGIN {
         cmd = "util.pl a b c"; 
         cmd | getline res; 
         close(cmd);
         print "in awk, application type is " res
     }'

我真的不想让这听起来很刺耳,但有什么理由不只是用Perl编写整个脚本吗?除非它是一个大型成熟的AWK脚本,否则我可能会建议使用Perl来完成整个过程。确实如此。尤其是当您的Perl脚本正在进行另一个过程时。