Zeilen in der Datei lesen und entfernen, am Ende auf neue Zeilen warten

Zeilen in der Datei lesen und entfernen, am Ende auf neue Zeilen warten

Ich suche eigentlich nach einem Bash-Skript, das eine Datei überwacht, jede neue Zeile in der Datei ausführt und dann die Zeile entfernt. Wenn die gesamte Datei verarbeitet ist, muss das Skript auf neue Zeilen warten.

Ich habe nach Antworten gesucht, aber kaum mehr gefunden, als dass ich jede Zeile einer Datei lesen konnte.

Ist Bash übrigens für eine solche Aufgabe effizient oder sollte ich dafür ein kleines C-Programm erstellen?

Antwort1

Das Folgende führt alles aus, was Sie verlangen, außer dem Entfernen der Zeilen aus der Datei:

$ ./script && tail -n0 -f script | while read line; do eval "${line}"; done;

Führen Sie zunächst einfach die Datei aus und missbrauchen Sie dann „tail“ und „eval“. So können Sie das gewünschte Verhalten ganz einfach annähern.

Antwort2

Wenn das Entfernen der Leitung nicht unbedingt erforderlich ist, können Sie auch Folgendes versuchen:

 tail -f filename | parallel eval "{}"

verwandte Informationen