現在の日付(および任意の部分)によって名前が異なるファイルをどのように見つけることができますか?

現在の日付(および任意の部分)によって名前が異なるファイルをどのように見つけることができますか?

毎日特定のパスを確認して、次の形式の名前のファイルを見つける必要があります。

StaticData_Sets_yyyymmdd-232550.txt

文字列の後の名前の日付は、StaticData_Sets_システム日付に従って毎日更新されます。日付の後の数字はランダムです。

Unixで現在の日付のファイルを見つける方法は?

答え1

コマンドを使用してdate正しい出力形式で現在の日付を生成し、次のようにファイル名に文字列を追加します。

filename=StaticData_Sets_$(date +"%Y%m%d")
find . -name "$filename*.txt"

答え2

このfindコマンドは今日の日付のファイルを見つける必要があります。

find /path/ -regex ".*\/StaticData_Sets_$(date +%Y%m%d)-[0-9]+\.txt"

/StaticData_Sets_を含むすべての項目を見つけて、目的の形式の日付、数字()を見つけます[0-9]+

答え3

ファイルが指定されたパス(追加のサブディレクトリなし)のすぐ下にある場合、この方法は機能します。

file=$path/StaticData_Sets_$(date +"%Y%m%d")-*.txt

もしそうなら、これはうまくいくでしょう(globstarbashで手動で有効にする必要があるかもしれません)。

    file=$path/**/StaticData_Sets_$(date +"%Y%m%d")-*.txt

関連情報