ファイル名のタイムスタンプに基づいてソートする方法

ファイル名のタイムスタンプに基づいてソートする方法

ファイル名に異なるタイムスタンプがあるディレクトリにファイルのリストがあります。ファイル名のタイムスタンプに基づいてファイルをソートしたいです。 (ファイルのtime / -t属性に基づいてソートしたくありません。代わりに、ファイル名のタイムスタンプに基づいてソートしたいです。)

ディレクトリのサンプルファイル:

ABC.20200131224353
ABC.20080131214253
ABC.20200131234153

私はls基本的にファイル名でソートするので、通常を使用します。しかし、すべての状況で正常に動作するわけではありません。たとえば、ファイルの年が「2008」の場合、そのファイルは最も古いファイルとは見なされません。

ベストアンサー1

この例を少し拡張すると、次のようになります。

ABC.20020131224353
ABC.20080131214253
ABC.20200131234153
ABC.20220131224353
ABC.20040131214253
ABC.20200131234153

find以下を使用できますsort

$ find . -type f -regextype posix-extended -regex '^.*\.[0-9]{14}$' | sort -t. -k3,3
./ABC.20020131224353
./ABC.20040131214253
./ABC.20080131214253
./ABC.20200131224353
./ABC.20200131234153
./ABC.20220131224353

おすすめ記事