Zapytałem o numer question dotyczący pojawienia się ostatniej linii pliku tekstowego w PHP, a teraz, czy jest możliwe ponowne napisanie logiki w skrypcie powłoki?powłoka: usuń ostatnią linię z ogromnego pliku logu tekstowego
Próbowałem to, aby uzyskać ostatnią linię:
tail -n 1 my_log_file.log
ale nie jestem pewien, w jaki sposób mogę usunąć ostatni wiersz i zapisz plik.
P.S. biorąc pod uwagę, że korzystam z serwera Ubuntu.
Należy zauważyć, że w przeciwieństwie do „wc” rozwiązania opartego dałem która będzie działać na systemach GNU, powyższe będzie działać poprawnie tylko z zsh jeżeli ostatnia linia zawiera znaki NUL. Ponadto nie będzie działać poprawnie, jeśli ostatnia linia nie zostanie zakończona. –
Również 'truncate' spodziewa rozmiar w _bytes_, podczas gdy' $ {# LAST} 'oblicza długość' $ LAST' w liczbie znaków. Chcesz ustawić ustawienia regionalne na C, aby było to równoważne. W przeciwnym razie nie działałoby to poprawnie, gdyby ostatnia linia zawierała znaki wielobajtowe. –