Jak zapisać zawartość terminala w pliku

13

Oto moja sytuacja: otwieram terminal i uruchamiam program, który wyświetla transmisję na żywo w terminalu (tekst), co zmienia się co sekundę. Podczas działania tego programu można używać tylko klawisza „Enter” (wychodzi z tego programu). Nie możesz więc wpisywać niczego w konsoli.

Chciałbym zapisać zawartość tego terminalu do pliku, jak co sekundę.

Jak mam to zrobić? Otwierając 2. konsolę i używając komendy? Nie można go uruchomić za pomocą polecenia setterm -dump.

Gustav
źródło
1
Hm, która to aplikacja? Jeśli nie sprawdziłeś dobrze, upewnij się, że aplikacja ma opcję zapisania wyjścia gdzieś.
Severo Raz
Sprawdziłem to. Tak nie jest. W przeciwnym razie nie miałbym tego problemu. Program jest live-f1, launchpad.net/live-f1
Gustav

Odpowiedzi:

16

Możesz przesłać dane wyjściowe do teeprogramu ( opis ):

my_program ... | tee my_program.log

To pokaże wyjście na terminalu, ale także zapisze go w pliku my_program.log

steabert
źródło
Taki sam wynik jak w przypadku pierwszej odpowiedzi. : /
Gustav
1
Zrzut ekranu, który opublikowałeś, wygląda tak, jakby zawierał wiele sekwencji ucieczki terminalu. Z informacji na temat startera używa ncurses (pobrałem źródło bzr branch lp:live-f1, a potem poszedłem poszukać README). Czy możesz uruchomić program bez kolorów, ustawiając TERMopcję dumb ( export TERM=dumb)? Źródło ma również TODOplik, odnotowując na liście życzeń, aby zachować historię sterowników. Być może możesz skontaktować się z programistami, aby zobaczyć, co planują lub czy mają sposób na zapisanie wyników.
steabert
12

Podczas wykonywania polecenia z terminala zamiast wyświetlania danych wyjściowych na konsoli można przekierować je bezpośrednio do pliku. Podczas działania programu dane wyjściowe zostaną zapisane w pliku. Przykład pozwala powiedzieć, że chcesz zapisać zawartość swojego folderu za pomocą polecenia ls do pliku o nazwie list.txt

ls > list.txt

>Operator przekierowania swoją moc w zależności od potrzeb.

topless
źródło
Dzięki, to działa, ale częściowo. Treść powinna mieć format HTML, ale kiedy otwieram plik, wygląda to mniej więcej tak: (wyciąć z pliku): VETTEL [21G (B [m [39; 49m. Nazwa programu to „live-f1”. Live-f1> live_f1_dump). log
Gustav
@Gustav masz na myśli to, że w konsoli drukuje html, aw pliku powyższe linie?
topless
Tak. Oto, co otrzymuję po uruchomieniu sugerowanego polecenia: upload.ee/image/1223166/ss_01.png . Moim celem jest przeniesienie pozycji kierowców Formuły 1 z kanału live-f1 do pliku. Pracowałem w zeszłym roku, uruchamiając program live-f1 w 1. terminalu, a następnie odpalając 2. terminal i używając komendy, która uchwyciła ekran 1. terminala i zapisała go do pliku (kopia z zeszłorocznego pliku: upload.ee/download/1223347 /0b6545ce227661452c8/html.log ). Komenda wyglądała mniej więcej tak: tty „1st terminal terminal” „filename”. Możliwe, że było to coś innego, co „tty” użyłem do tego.
Gustav
2

Spróbuj użyć scriptpolecenia. Niestety, w transkrypcji umieszcza wiele kontrolnych postaci gobbledegook. Jeśli jednak zobaczysz ten link w witrynie NCSSM CS , znajdziesz niedoskonałe, ale całkiem dobre rozwiązanie problemu.

ncmathsadist
źródło