我的尝试:
awk '$4 != "AZ" && max<$6 || NR==1{ max=$6; data=$0 } END{ print data }' USA.txt我试图打印第4列中没有"AZ“的行,在第6列中没有最大值的行。
该文件有6列的名字、姓氏、城镇/城市、州-abv。邮政编码评分
Shellstrop Eleanor Phoenix AZ 85023 -2920765
Shellstrop Donna Tarantula_Springs NV 89047 -5920765
Mendoza Jason Jacksonville FL 32205 -4123794
Mendoza Douglas Jacksonville FL 32209 -3193274
Peleaz Steven Jacksonville FL 32203 -3123794 发布于 2022-03-05 04:39:59
根据您的尝试,请尝试遵循awk代码。这将检查第四个字段是否不是AZ,然后将max的先前值与当前值$6进行比较,如果其值大于以前的值,则将当前$6分配给max,否则将其保持为以前的值。在END块的awk程序中,它的打印值。
awk -v max="" '$4!="AZ"{max=(max>$6?max:$6)} END{print max}' Input_file若要打印已找到的最大值的完整行,请执行以下操作:
awk -v max="" '$4!="AZ"{max=(max>$6?max:$6);arr[$6]=$0} END{print arr[max]}' Input_filehttps://stackoverflow.com/questions/71359500
复制相似问题