Odczytaj i usuń wiersze w pliku, poczekaj na nowe wiersze na końcu

3

Tak naprawdę szukam skryptu bash, który monitoruje plik, wykonuje każdą nową linię w pliku, a następnie usuwa linię. Po przetworzeniu całego pliku skrypt musi czekać na nowe wiersze.

Szukałem odpowiedzi, ale prawie nic nie znalazłem poza czytaniem każdej linii w pliku.

Nawiasem mówiąc, czy bash jest skuteczny przy takim zadaniu, czy powinienem zbudować mały program C, aby to zrobić?

José Mélançon
źródło

Odpowiedzi:

0

Następujące czynności wykonują wszystko, o co poprosisz, z wyjątkiem usunięcia linii z pliku:

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

Najpierw po prostu uruchom plik, a następnie nadużywając ogona i ewaluacji, możesz dość łatwo zbliżyć się do pożądanego zachowania.

solo
źródło
Dzięki, ponieważ pętla zaczyna się na końcu pliku, mogę robić, co chcę bez usuwania linii.
Czynię
0

Jeśli usunięcie linii nie jest koniecznością, możesz także spróbować:

 tail -f filename | parallel eval "{}"
Fivesheep
źródło