2番目の列を最後の列でソートする方法を知りたいです。数字の前には「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
少しハッキーですが動作するはずです。
awk '{print substr($(NF-1), 6), $0}' file | sort -g | cut -d' ' -f2-
前の2番目の列(removed days=
)をコピーし、数値順に並べ替えてから、最初の列(最後から2番目の列をコピー)を削除します。