テキストファイルで日付リストを並べ替える方法

テキストファイルで日付リストを並べ替える方法

日付リストを含むテキストファイル(dd.mm.yyyy)があるとします。

01.01.2020
01.03.2020
01.01.2019

どうやって整理しますか? (最も古いものから最新のものまで「上から下へ」方法で)?

答え1

努力する

sort -t. -k 3,3 -k 2,2 -k 1,1 <filename

区切り文字を「.」に設定し、キー3(yyyy)、2(mm)、1(dd)で並べ替えます。

答え2

$ awk -F . '{ print $3, $2, $1 }' file | sort | awk -v OFS=. '{ print $3, $2, $1 }'
01.01.2019
01.01.2020
01.03.2020

これにより、スクリプトレットを含むフィールドがawkYYYY MM DDの順序で置き換えられます。プレーンを使用してsort正しい日付順に並べ替えることができます。最後に、awkドットを区切り文字として使用して、データをそのまま復元します。

関連情報