我有这个示例文件
userX 2020 start id1
userY 2005 stop id2
userZ 2006 start id3
userT 2014 stop id1
userX 2010 stop id1
我想创建一个数组,其中年份值是每个具有给定条件$2
的唯一用户 ID 对的元素。例如和$1$4
$3=="stop"
arr[userXid1]=2010
arr[userTid1]=2014
我的代码:
awk '{if($3=="stop") arr[$1$4]=$2} END{print arr[userXid1]}' log
预期输出:
2010
但这会打印空行。当我print length(arr)
给出的时候3
,这是有道理的。但$2
价值观不存在,我不知道为什么。任何帮助表示赞赏。
awk '{if($3=="start") arrstart[$1,$4]=$2; else if($3=="stop") arrstop[$1,$4]=$2 fi; next} END{for(i in arrstop) if(arrstart[i]>arrstop[i]) print i}' SUBSEP=':' log
补充:最终代码,与问题无关。