【问题标题】:Sorting an array of dates in bash在bash中对日期数组进行排序
【发布时间】:2017-11-13 15:59:49
【问题描述】:

我想对日期数组进行排序。

示例格式:“2017-11-13_07-55-40”或年-月-日_时-分-秒

array={"2017-11-13_09-55-42" "2017-11-13_08-30-40" "2017-11-13_07-55-40"}

【问题讨论】:

    标签: arrays linux string bash sorting


    【解决方案1】:

    由于您的日期已经是YYYY-MM-DD-HH-MM-SS 格式,您可以使用数字排序:

    array=("2017-11-13_09-55-42" "2017-11-13_08-30-40" "2017-11-13_07-55-40")
    sort -n < <(printf '%s\n' "${array[@]}")
    
    2017-11-13_07-55-40
    2017-11-13_08-30-40
    2017-11-13_09-55-42
    

    要将输出存储在另一个数组中,请使用:

    # populate another array with sorted date values
    arr=($(sort -n < <(printf '%s\n' "${array[@]}")))
    
    # examine new array values
    declare -p arr
    declare -a arr=([0]="2017-11-13_07-55-40" [1]="2017-11-13_08-30-40" [2]="2017-11-13_09-55-42")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-11
      • 1970-01-01
      • 2020-07-22
      • 1970-01-01
      • 1970-01-01
      • 2021-02-23
      • 2016-09-30
      • 1970-01-01
      相关资源
      最近更新 更多