So erhalten Sie den in Find gestarteten Grep-Statuscode

So erhalten Sie den in Find gestarteten Grep-Statuscode

Wie ist es möglich, den Exit-Code des in einem Find gestarteten Grep-Befehls abzurufen:

z.B:

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

Unabhängig davon, ob das Wort „Fehler“ in der Datei gefunden wird oder nicht, wird der Exit-Code zurückgegeben.0

Der Inhalt von instance.log ist wie folgt:

2016-09-30 09:01:20 : FEHLER2 (16)

Antwort1

Der Befehl find mit der Option -exec gibt den Statuscode des grep-Befehls zurück. Beispiel:

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

Gibt 0 zurück, wenn ich es in einem Ordner mit einigen Protokolldateien ausführe, die das Muster „201“ enthalten. Sie können es mit echo $? in Ihrer Konsole überprüfen (das gibt 0 zurück, wenn das Muster gefunden wird).

Wenn ich den gleichen Befehl in einem anderen Ordner mit Dateien ausführe, die nicht „201“ enthalten, ist der Statuscode des Suchbefehls 1

verwandte Informationen