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ć?

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.


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 "{}"
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.