xy_*で始まり、今日作成/編集されたファイル名を検索する方法は?

xy_*で始まり、今日作成/編集されたファイル名を検索する方法は?

こんにちは、現在xy_Numberで始まり、今日(過去24時間ではない)作成/編集されたログファイルを検索しようとしています。

私は試した:

find /home/USER/logfilesError/ -maxdepth 1 -type f -daystart -mtime -1 print0 | xargs -0 grep - l xy_*

出力:

find: paths must precede expression: print0

以下を組み合わせる必要があります。

find -maxdepth 1 -type f -daystart -mtime -1

そして

ls | grep -E "xy_"

私が達成したいことは次のとおりです

今日の特定の場所からログファイルを検索し、そのファイルとERRORで始まる出力行をさらに検索します。 (他のラインINFOとDEBUG)


検索が正常に機能しています。検索後にgrepを使用してファイルをさらに確認して、ERRORを含むファイルを見つけたいと思います。

grep -rl "ERROR" /home/USER/logfilesError/

これをスクリプトに結合するにはどうすればよいですか?もし?誰かが私を助けることができますか?

答え1

grep を使用して find が操作を実行できる理由:

find /home/USER/logfilesError/ -maxdepth 1 -type f -name "xy_*" -daystart -mtime -1

答え2

その音から、あなたは次を探しています-name

find /path -maxdepth 1 -type f -name 'xy_*' -daystart -mtime -1 -exec grep -H ERROR {} +

からman find

-name pattern

ファイル名のデフォルト(先行ディレクトリが削除されたパス)はシェルパターンと一致します。メタ文字(「*」、「?」、「[]」)は、デフォルト名の先頭の「.」と一致します(これはfindutils-4.2.2の変更です。以下の標準適合セクションを参照)。ディレクトリとその下のファイルを無視するには、-pruneを使用します。 -path 説明の例をご覧ください。 Bashを含む一部のシェルは、シェルモードでは中かっこに特別な意味を与えますが、中かっこは特別とは見なされません。ファイル名の一致は、fnmatch(3)ライブラリ関数を使用して行われます。シェルによって拡張されるのを防ぐためにパターンを引用することを忘れないでください。

関連情報