2016-10-20 7 views
0

bashを使用する年月日を入力し、テキストファイルにその特定の日付が含まれているかどうかを確認する必要があります。ファイル名。入力した日付がタイムスタンプのテキストファイルと一致するかどうかを確認するには

例:

ThreadNum: 309264 
Subject: Re: math 
To: [email protected] (aaa) 
From: Doctor Douglas 
TimeStamp: 03/08/2004 at 13:58:57 
Sent: yes 

私の入力は、私は、ファイル名をプリントアウトする必要があるタイムスタンプが一致した場合。 bashを使ってタイムスタンプとどのように一致させるのですか?

+1

errr 'grep -l date files'? –

+0

'grep -lIR 'タイムスタンプ:03/08/2004'/directory/with/files /' –

答えて

0

はこの試してみてください。 egrep -l 'TimeStamp: 03/08/2004' file

あなたが望む限り多くのファイルを指定するか、単に*あなたはそのためfindを使用することができますfile

0

のinsted使用することができます。

find /path/to/directory -type f -exec grep -l 'TimeStamp: 03/08/2004' {} \; 
  • -type ffindにのみ検索を指示しますファイルの場合。

  • -exec grep -lfindgrepユーティリティを呼び出すように指示します。 -l引数は、指定された検索文字列(この場合はTimeStamp: 03/08/2004)が見つかるまで、grepにファイルを検索するように指示します。一致するものが見つかると、ファイルのパス名がstdoutに出力されます。

ディレクトリのサイズ、ファイルの数、およびファイルに含まれるデータの量によっては、完了に少し時間がかかることがあります。検索対象のファイルがすべて1つのディレクトリに含まれていると、時間が大幅に短縮されます。

たとえば、フォルダ内のすべてのファイルを検索すると、検索が$HOME/Documents/Text_Filesに絞り込まれた場合よりもはるかに時間がかかります。

関連する問題