日付形式に基づいてファイル名をgrepする方法

日付形式に基づいてファイル名をgrepする方法

同じフォルダーに時間と日のファイルがあります。

data-2015-06-06-00.tsv
data-2015-06-06-01.tsv
data-2015-06-06-02.tsv
data-2015-06-06-03.tsv
data-2015-06-06.tsv
data-2015-06-07-03.tsv
data-2015-06-07-02.tsv
data-2015-06-07.tsv

ファイルリストから一意の毎日のレポートを取得する方法。

data-2015-06-06.tsv data-2015-06-07.tsvのみが必要です。

答え1

3つの追加オプション:

ls  | grep ^data-...........tsv  

または:

ls  | grep ^data-"[[:digit:]]\{4\}-[[:digit:]]\{2\}-[[:digit:]]\{2\}.tsv"

または:

ls  | grep ^data-[1-2][0-1][0-9][0-9]-[0-1][0-9]-[0-1][0-9].tsv

答え2

今日:

 ls date-$(date +%Y-%m-%d)*

昨日:

 ls date-$(date +%Y-%m-%d -d yesterday )*

どこ

  • date +%Y-%m-%d日付形式を指定します。
  • -d yesterday昨日の日付を使う
  • $( )コマンドを設定して実行し、出力を文字列として使用します。

ファイルの最後の変更時刻を渡すことができないとします。

編集する:

今日から毎時間避けてください:

 ls date-$(date +%Y-%m-%d).tsv

日常的な使用については@lcd047さんからのみ回答を受けました。

関連情報