findでgrepステータスコードを取得する方法

findでgrepステータスコードを取得する方法

findで始まるgrepコマンドの終了コードを取得するには:

たとえば、

find ./export-`date +%Y%m%d`-*/instance.log -type f -exec grep -i -m1 error {} \;

ファイルに「error」という単語があるかどうかにかかわらず、終了コードを返します。0

instance.logの内容は次のとおりです。

2016-09-30 09:01:20:エラー2(16)

答え1

-execオプションで使用されているfindコマンドは、grepコマンドのステータスコードを返します。例:

find . -type f  -exec grep 201 {} +

「201」パターンを含むいくつかのログファイルを含むフォルダで実行すると、0が返されます。 echo $?(パターンが見つかった場合はゼロを提供)を使用してコンソールで確認できます。

"201"を含まないファイルを含む別のフォルダで同じコマンドを実行すると、findコマンドのステータスコードは1になります。

関連情報