Bash-Skript - Überprüfen Sie, ob eine Datei eine bestimmte Zeile enthält

8

Ich muss prüfen, ob eine Datei eine bestimmte Zeile enthält. Diese Datei wird ständig von jemandem geschrieben, also lege ich den Check in eine While-Schleife.

%Vor%

Die Datei enthält Text und mehrere Zeilen.

    
user3472065 04.04.2014, 11:28
quelle

4 Antworten

10

wenn $FILE den Dateinamen und $STRING die zu durchsuchende Zeichenfolge enthält, dann können Sie anzeigen, ob die Datei mit dem folgenden Befehl übereinstimmt:

%Vor%     
fstab 04.04.2014, 11:38
quelle
6

Überprüfen Sie die Änderungszeit der Datei und grep nach der Zeichenfolge, wenn sie sich ändert:

%Vor%

Hinweis: BSD-Benutzer sollten stat -f%m

verwenden     
Cole Tierney 04.04.2014 11:55
quelle
4

Versuchen:

%Vor%

Dies wird kontinuierlich wiederholt, ohne zu warten. Vielleicht möchten Sie eine Wartezeit hinzufügen (z. B. 5 Sekunden in diesem Beispiel):

%Vor%     
Josh Jolly 04.04.2014 11:32
quelle
0

Eine strengere Prüfung, um zu testen, ob eine gegebene Zeile $ STRING in einer Datei FILE enthalten ist, wäre

%Vor%

Dies betrifft insbesondere meine Bedenken mit der Antwort von @ fstab (die auch für alle anderen vorherigen Antworten gilt): Sie prüft die komplette Zeile und nicht nur die Teilzeichenfolge innerhalb einer Zeile (wie bei den grep-Lösungen von oben) / p>

Die Schleife könnte wie in den anderen Antworten gezeigt durchgeführt werden.

    
Holger Brandl 11.08.2017 16:39
quelle