我想知道如何对倒数第二列进行排序?数字前面有“days=”一词。我可以使用 awk '{print $(NF-1)}' 获取列,但排序是错误的。
457000 (test2) && (SGD||RMB||HKD||YEN) days=5000 71
37622 (this is || test1)&&(SGD||HKD||RMB) days=630 40010
43944 (this is)&&(SGD||HKD) days=80 102732
79378 (this is||test2)&&(HKD||RMB) days=800 205425
我正在寻找的结果是
43944 (this is)&&(SGD||HKD) days=80 102732
37622 (this is || test1)&&(SGD||HKD||RMB) days=630 40010
79378 (this is||test2)&&(HKD||RMB) days=800 205425
457000 (test2) && (SGD||RMB||HKD||YEN) days=5000 71
答案1
有点 hacky,但它应该可以工作:
awk '{print substr($(NF-1), 6), $0}' file | sort -g | cut -d' ' -f2-
它复制前面的倒数第二列(删除days=
),按数字排序,然后删除第一列(复制的倒数第二列)。