6

今日の日付でログ ファイルを grep する必要がありますが、出力は今日の日付よりも長く表示されています。

grep date +"20%y-%m-%d" /path/log/General.log | grep "EmpID#106496" /path/log/Genral.log

出力:

2013-06-19 14:47:05,996 - INFO  EmpID#106496 
2013-06-19 14:47:05,996 - INFO  EmpID#106496 
2013-06-21 00:01:24,915 - INFO  EmpID#106496 
2013-06-21 00:01:24,915 - INFO EmpID#106496  
4

3 に答える 3

17

date出力を次のパターンとして使用しgrepます。

$ grep "$(date +"%Y-%m-%d")" file
2013-06-21 00:01:24,915 - INFO   
2013-06-21 00:01:24,915 - INFO

つまり、date文を囲んで処理させる必要があります。Yまた、あなたの代わりに使用したことに注意してください20%y


EmpID現在の日付のログで詳細を探しています。

次に、別の grep にパイプします。

$ grep $(date +"%Y-%m-%d") file | grep "EmpID#106496"
2013-06-21 00:01:24,915 - INFO  EmpID#106496 
2013-06-21 00:01:24,915 - INFO EmpID#106496 
于 2013-06-21T15:26:40.280 に答える
2

date コマンドにスペース区切りのフィールドを追加する必要がある場合は、 $() を二重引用符で囲みます。

$ grep "$(date +"%Y-%m-%d %H:%M")" file
2013-06-21 00:01:24,915 - INFO   
2013-06-21 00:01:24,915 - INFO
于 2015-05-22T13:48:47.587 に答える
1

バッククォートで囲まれていないため、実際には「date」を実行していません。コマンドは

grep `date +"20%y-%m-%d"` /path/log/General.log
#    ^--                ^--

現在、書かれているようにdate、2 つの異なるファイル ( +"20%Y-%m-%d"、およびgeneral.log) で単語を検索しています。

于 2013-06-21T15:30:09.733 に答える