• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Best. Textzeile auslesen und weiterverarbeiten

byron1778

Hacker
Hallo Forum,

ich habe eine LOG - Datei, in welcher manchmal folgender Eintrag aufscheint (manchmal auch mehrmals!)

Action was deadlocked with another process
and is the deadlock victim.
You must re-run.

Genau diese Zeile möchte ich auslesen und wenn Sie auftritt, dann darauf weitere Aktionen ausführen, wie eine bestimmte Datei in ein Verzeichnis kopieren!

Folgendes habe ich mir dabei gedacht, das aber nicht funktionierte!

Code:
RESULT=`grep "Action was deadlocked with another process
        and is the deadlock victim.
        You must re-run." ImportFile.log | echo $?

Jedoch gibt er mir im Shell-Script niemals 0 oder 1 zurück!

Führe ich aber nur den Befehl in der Shell alleine aus, dann bekomme ich immer 0 oder 1 zurück.

Code:
> grep "Action was deadlocked with another process
        and is the deadlock victim.
        You must re-run." ImportFile.log" | echo $?

Kann mir jemand vielleicht weiterhelfen, wie ich den Status abfragen kann im Shellscript und diesen dann weiterverarbeiten kann?
Auf diesen Status aufbauend soll dann ein bestimmtes File kopiert werden!

Danke vielmals schon für jede Hilfe.

Mfg
Byron
 

Leviathan

Hacker
Probier folgendes. Das RESULT in die pipe zu echo zu schieben macht imo keinen Sinn.

Gruß Dominik

RESULT=`grep "Action was deadlocked with another process
and is the deadlock victim. You must re-run." ImportFile.log`


if [ -n $RESULT ]; then

do
echo "fehler"
exit 1
else
echo "ok"
exit 0
fi
 
OP
B

byron1778

Hacker
Hallo,

danke Dir vielmals für Deine Hilfe.
Eines würde mich interessieren noch.

Warum kann er das Ergebnis, dass in die Pipe geschoben wird, dann nacher nicht mehr weiterverarbeiten?

In der Shell kann er damit umgehen!

Danke vielmals für die Hilfe!

Mfg
Byron
 

Leviathan

Hacker
ka, warum die Bash damit umgehen kann.

Am einfachsten löst du das ganze Ding einfach so:

grep "Action was deadlocked with another process and is the deadlock victim. You must re-run." ImportFile.log && mail -s "errormeldung. es kann nur einen geben o.ä." [mailaddy]

Gruß Dominik
 
Oben