Linux 排序倒数第二列

use*_*496 6 shell text-processing sort columns

我想知道如何对倒数第二列进行排序?它的数字前面有“天数=”字样。我可以使用 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 
Run Code Online (Sandbox Code Playgroud)

我正在寻找的结果是

    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
Run Code Online (Sandbox Code Playgroud)

Kev*_*vin 10

有点hacky,但它应该工作:

awk '{print substr($(NF-1), 6), $0}' file | sort -g | cut -d' ' -f2-
Run Code Online (Sandbox Code Playgroud)

它复制前面的倒数第二列(删除days=),按数字排序,然后删除第一列(复制的倒数第二列)。