Find ステートメントの結果を日付別に並べ替えるには?

Find ステートメントの結果を日付別に並べ替えるには?

名前に特定の文字列が含まれていますが、出力を並べ替える方法がわからないファイルを見つけようとすると、ファイル名のみを取得できます。

頑張った

OLDDATA=`find . -regex ".*/[0-9.]+" | ls -t`

ただし、ls -tは検索結果では機能しませんが、ディレクトリ全体では機能しません。

編集:このステートメントの結果は、変更日のディレクトリーに基づいてソートする必要があります。この正規表現は、名前に数字とドットのみを含むディレクトリと一致すると想定されます。

ベストアンサー1

ファイル名のみインポート...変更日別に並べ替え

find+sort+cut方法:

find . -regex ".*/[0-9.]+" -printf "%T@ %f\n" | sort | cut -d' ' -f2

  • %T@- ファイルが最後に変更された@日付第二Jan. 1, 1970, 00:00 GMT,少数部があるから

  • %f- すべての先行ディレクトリファイル名を削除します(最後の要素のみ)。


降順で並べ替えるには:

find . -regex ".*/[0-9.]+" -printf "%T@ %f\n" | sort -k1,1r | cut -d' ' -f2

おすすめ記事