awk 变量传到shell

时间:2022-12-12 16:53:42

今天之前的同事问我一个关于awk的问题。他的意思是通过awk操作获得的几行数据是不定的,需要将获得的几行数据存到一个数组中,又不想使用循环。经过一下午的努力。终于实现了。

最终命行eval $(ps -ef | grep tomcat | awk '{print $9}'|sed '/home/!d'|sed 's/^.*home\///g'|sed 's/\/.*$//g' | awk '{printf "line["NR"]=%s\n",$1}').

需要注意的地方1. 在awk中对变量赋值,如果不使用eval $() 是不能在shell中使用awk中变量的。2. awk中有NR,NF这样的参数,可以利用它生成一个数组。