传递shell脚本中的数组给awk

实际中遇到了,就按自己的方法写了,这里只展示其中相关的一部分

#获取数组的长度

ARRAY_LEN="`wc -l temp2 | awk '{print $1}'`"

TEMP_INDEX=0

declare -a ARRAY_DATE

#为shell中的数组赋值

for i in $(cat temp2);do

        ARRAY_DATE[TEMP_INDEX++]=$i

done

 

#for((ix=0;ix<$ARRAY_LEN;ix++));do 

#       echo ${ARRAY_DATE[ix]}

#done

#将shell数组中所有内容传递给awk

awk -v STRING="${ARRAY_DATE[*]}" 'BEGIN{ 

#分割STRING,使其还原成和shell数组内容一样

        LEN=split(STRING,DATE)

#后面就可以做自己想要的处理了

。。。。。

 

总结:将脚本中的数组取所有值作为一个变量值付给awk变量,利用split分割还原回来

你可能感兴趣的:(Linux/Unix,shell,shell,脚本,date,string)