Czy można usunąć sekwencje ESC z pliku wyjściowego GNU Screen? Elementy, takie jak kolory, tabulatory i inne znaki specjalne, przedostają się do plików dziennika i stają się trudne do odczytania.
Próbowałem Dr. Google & Co., a także czytałem instrukcję, ale nie znalazłem nic odpowiedniego ...
Być może coś przeoczyłem?
linux
terminal
gnu-screen
Shaond
źródło
źródło
Użyj filtra.
źródło
brew install ansifilter
go i działało to jak urok.Wypróbuj również opcję -r lub -R opcji less.
źródło
Po przechwyceniu sesji w screenlog.n, możesz cat plik do terminalu, a następnie użyć polecenia hardcopy screen, aby zrzucić dane wyjściowe kota do pliku. Rezultat zapewni czyste wyjście, które nie ma żadnych sekwencji specjalnych.
Jedynym „gotcha” wydaje się być upewnienie się, że wydruk przechwytuje wszystko w buforze przewijania i że bufor przewijania zawiera tylko to, co chcesz przechwycić.
Zauważ, że -h zapewnia przechwycenie całej historii przewijania, a nie tylko tego, co jest widoczne w bezpośrednim widoku
Plik screenlog.n.cleaned będzie teraz zawierał wydruk wyjścia kota i nie będzie zawierał żadnych sekwencji specjalnych
źródło
wc -l
nie działała dla mnie. Zwrócił 28226, ale naprawdę potrzebował 33031 w moim przypadku.Używam tego
strings
polecenia, aby dziennik ekranu był czytelny. Pod Debianem jest częścią pakietu binutils.Jak mówi strona man:
źródło
Jeśli jesteś
screen
użytkownikiem, rozwiązanie w postaci papierowej kopii zaproponowane przez post Joela Verksa będzie działało najlepiej - zakładając, że masz duże przewijanie zdefiniowane w.screenrc
:wtedy zrobiłbyś:
Wyświetl swój
screenlog
plik:Użyj
hardcopy -h
(patrz strona podręcznika ekranowego), aby zapisać bieżącą zawartość okna i bufor przewijania dohardcopy.#
pliku:źródło