【问题标题】:Unix sort not from the first characterUnix 排序不是从第一个字符开始
【发布时间】:2019-01-30 05:56:04
【问题描述】:

我有以下数据,

% [START_TIME - END_TIME] TURN_NAME EMOTION [V, A, D]
[6.2901 - 8.2357]   Ses01F_impro01_F000 neu [2.5000, 2.5000, 2.5000]
[10.0100 - 11.3925] Ses01F_impro01_F001 neu [2.5000, 2.5000, 2.5000]
[14.8872 - 18.0175] Ses01F_impro01_F002 neu [2.5000, 2.5000, 2.5000]
[97.8900 - 102.9600]    Ses01F_impro01_F014 neu [2.5000, 3.5000, 3.5000]
[103.9700 - 106.7100]   Ses01F_impro01_F015 fru [2.0000, 3.5000, 3.0000]
[7.5712 - 10.4750]  Ses01F_impro01_M000 fru [2.5000, 2.0000, 2.5000]
[10.9266 - 14.6649] Ses01F_impro01_M001 fru [2.5000, 2.0000, 2.5000]
[16.8352 - 19.7175] Ses01F_impro01_M002 fru [2.0000, 3.5000, 3.5000]
[23.4700 - 28.0300] Ses01F_impro01_M003 fru [2.5000, 3.5000, 3.5000]
[101.8400 - 107.8700]   Ses01F_impro01_M013 ang [2.0000, 4.5000, 4.5000]

我期待sort 命令后的以下结果,

 % [START_TIME - END_TIME] TURN_NAME EMOTION [V, A, D]
[6.2901 - 8.2357]   Ses01F_impro01_F000 neu [2.5000, 2.5000, 2.5000]
[7.5712 - 10.4750]  Ses01F_impro01_M000 fru [2.5000, 2.0000, 2.5000]
[10.0100 - 11.3925] Ses01F_impro01_F001 neu [2.5000, 2.5000, 2.5000]
[10.9266 - 14.6649] Ses01F_impro01_M001 fru [2.5000, 2.0000, 2.5000]
[14.8872 - 18.0175] Ses01F_impro01_F002 neu [2.5000, 2.5000, 2.5000]
[16.8352 - 19.7175] Ses01F_impro01_M002 fru [2.0000, 3.5000, 3.5000]
[23.4700 - 28.0300] Ses01F_impro01_M003 fru [2.5000, 3.5000, 3.5000]
[97.8900 - 102.9600]    Ses01F_impro01_F014 neu [2.5000, 3.5000, 3.5000]
[101.8400 - 107.8700]   Ses01F_impro01_M013 ang [2.0000, 4.5000, 4.5000]
[103.9700 - 106.7100]   Ses01F_impro01_F015 fru [2.0000, 3.5000, 3.0000]

我使用下面的sort 命令从第二个字符开始排序,

 sort -k1.2 filename 

但它给出了[10.0100....] 的第一行。因此,排序命令将根据最左边的十进制数 (START_TIME) 进行排序,同时将标题保持在顶部。任何有经验的sort 用户都可以在这里提供帮助...?

【问题讨论】:

    标签: bash sorting unix


    【解决方案1】:

    您需要使用-g 选项指定您想要的数字排序:

    { read -r header; echo "$header"; sort -g -k 1.2,1; } < filename
    

    【讨论】:

    • 按预期完美运行。谢谢你的课!
    猜你喜欢
    • 1970-01-01
    • 2016-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-09
    • 1970-01-01
    相关资源
    最近更新 更多