需要在awk中调用外部函数

时间:2016-01-03 14:50:23

标签: bash shell awk

这是我的bash脚本

##################start#######################

 cat out.txt | awk -F'\n' '{ 
n=split($0,line,"[");
for (i = 2; i <= n;i++) {
    printf "%s [%s\n", line[1],line[i] ;

    ############ need to call netcat_output function here##########
}

}'

netcat_output () {
    echo $1``
}
####################end ########################

我需要用netcat_output参数调用line[i]函数。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

尝试使用此模板解决您的问题。即,在awk语句之前定义和导出函数。还要在系统调用中明确定义bash,否则默认情况下它将是sh

#!/bin/bash

function f() {
   echo $RANDOM
}

export -f f

awk 'BEGIN{print system("bash -c '\'' f '\'' ")}'