0

自動化のために bash スクリプトを書いていますが、日付を含む配列をソートする最良の方法が見つからないようです。

配列の例:

dates=('180212', '110112', '040312')

出力は次のようになります。

110112
180212
040312

使用しようとしましsortたが、整数であるかのように並べ替えるだけです。

使用する最良の方法について誰かアドバイスできますか? 必ずしも並べ替える必要はありません。配列から最も古い日付が必要なだけです。

ありがとう!

4

2 に答える 2

1

年と日の数字を入れ替えてsort、結果の値を並べ替えることができます。次に、最も古い値を取得して、スワップを元に戻します。sedこのようにスワッピングを行うことができます:

echo 112233 | sed 's/\(..\)\(..\)\(..\)/\3\2\1/'

これにより、最初の2桁が最後の2桁と入れ替わります。

于 2013-01-30T12:08:44.570 に答える
1

Example bash-script:

dates="180212 110112 040312"
min="999999"
for d in $dates
do
    rdate="${d:4}${d:2:2}${d:0:2}"
    if [ "$min" -gt "$rdate" ]
    then
        min=$rdate
    fi
done

min="${min:4}${min:2:2}${min:0:2}"
echo $min

Works only with dates which are ddmmyy. The idea is to reverse the date in the format yymmdd and then find the minimum. Does the job in bash. Not beautiful though.

于 2013-01-30T12:15:32.947 に答える