使用awk指定输出顺序

时间:2014-10-27 12:23:32

标签: unix awk

我有以下名为testfile的文件,其中包含以下内容:

{"items":[{"ogit\/_created on":1413388512511,"\/environmentType":"PROD","\/soxRelevant":"true","\/environmentName":"dbVertical"}]}

我使用以下awk命令获取soxRelevant,环境类型和环境名称的值。

cat test file | tr -d '"' | awk 'BEGIN {RS=","; FS=":"; ORS=",";} /soxRelevant/ {print $2}; /environmentType/ {print $2}; /environmentName/ {print $2};'

输出如下

PROD,true,dbVertical,

但是我希望首先是soxRelevant输出,然后是环境类型,然后是环境名称,如awk命令中所指定的那样:

我希望输出为:

true, PROD, dbVertical

我该怎么做?

1 个答案:

答案 0 :(得分:0)

您可以将元素推送到数组,然后在END块中打印它们:

awk 'BEGIN {RS=ORS=","; FS=":"}
     /soxRelevant/ {a[1]=$2} 
     /environmentType/ {a[2]=$2} 
     /environmentName/ {a[3]=$2}
     END{for(n=1;n<=3;++n)print a[n]}'