I want to sort an array of dates.
Example format: “2017-11-13_07-55-40” or Year-Month-Date_Hour-Minute-Second
JavaScript
x
array={"2017-11-13_09-55-42" "2017-11-13_08-30-40" "2017-11-13_07-55-40"}
Advertisement
Answer
Since your dates are already in YYYY-MM-DD-HH-MM-SS
format, you can use numeric sort:
JavaScript
array=("2017-11-13_09-55-42" "2017-11-13_08-30-40" "2017-11-13_07-55-40")
sort -n < <(printf '%sn' "${array[@]}")
2017-11-13_07-55-40
2017-11-13_08-30-40
2017-11-13_09-55-42
To store output in another array use:
JavaScript
# populate another array with sorted date values
arr=($(sort -n < <(printf '%sn' "${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")