live-f1의 출력을 파일에 쓰는 방법


10

터미널을 열고 live-f1을 실행하여 매 초마다 바뀌는 터미널 (텍스트)에 라이브 피드를 표시합니다. 이 프로그램이 실행되는 동안에는 "Enter"키만 사용할 수 있습니다 (해당 프로그램을 종료합니다). 따라서 콘솔에 다른 것을 입력 할 수 없습니다.

매 초마다 터미널 내용을 파일에 쓰고 싶습니다.

어떻게하니?

두 번째 콘솔을 열고 명령을 사용하여?

setterm -dump 명령으로 작동시킬 수 없습니다.

답변:


8

live-f1top또는 처럼 터미널 제어 문자 (ncurses)를 사용하여 새 데이터로 화면을 다시 그 mtr립니다. 따라서 파일 또는 비 터미널 장치로 리디렉션 할 때이 정크가 모두 표시됩니다.

불행히도 live-f1통계 등을 위해 데이터를 저장하고 나중에 추출하기에 적합한 출력을 얻는 옵션을 제공하지 않습니다. 나중에 재생할 수 있도록 출력을 저장하려면을 사용할 수 있습니다 script.

live-f1을 기록하고 typescript와 timingfile이라는 두 파일을 만듭니다.

script -c live-f1 -t 2> timingfile

이것은 출력을 재생합니다

scriptreplay timingfile

7

출력을 파일로 캡처하는 데 사용할 수있는 몇 가지 방법이 있습니다.

script

이것은 서브 쉘을 생성하고 모든 출력을 그 안에 넣습니다. 그래서 할 script당신이 원하는대로 다음, 다음, exit당신의 서브 쉘을 종료하고 출력은 "타이프 라이터"라는 파일에있을 것입니다

tee

모든 파이프를 다른 곳으로 에코 할 수 있습니다. 따라서 tee표준 출력을 파일로 분리 할 수 있습니다 .

$ mycommand | tee myoutput

표준 오류를 캡처해야하는 경우 리디렉션하십시오.

$ mycommand 2>&1 | tee myoutput

6

다음과 같이 프로그램을 실행하는 방법은 다음과 같습니다.

program > /path/to/file

출력 program/path/to/file즉시 재 지정합니다 .

그리고 출력을 터미널에 저장하고 파일로 저장하려면. 확인 리디렉션 출력 bash는 방법이 있나요 아직도이 표준 출력으로 이동했다?


빠른 답변 감사합니다. 이것은 거의 작동하며 파일 내용 만 엉망입니다. HTML로 표시되어야하지만 대신 파일을 열면 이상한 기호가 있습니다. 스크린 샷을 참조하십시오 : upload.ee/image/1223166/ss_01.png . 프로그램 이름은 live-f1입니다.
Gustav

재미 있겠다 프로그램이 HTML 만 출력하는지 확인 하시겠습니까? 애니메이션이나 이상한 것이 있습니까?
phunehehe

표준 출력 만 리디렉션합니다. 표준 오류도 필요합니까?
Faheem Mitha

2
@Gustav ANSI 코드도 갇혀 있습니다. 응용 프로그램이 일종의 진행 카운터를 출력하거나 (출력 상태가 비슷 함) 비슷합니다. 이 기능을 끄는 방법이 있으면 깨끗한 출력을 캡처하는 데 사용해야합니다. 응용 프로그램은 HTML을 출력하지 않으므로 HTML을 캡처하려면 출력을 변환하는 다른 응용 프로그램이 필요합니다.
Matthew Scharley

내가 HTML로 말하고있는 이유는 1 년 전에 작동했지만 작동 환경이있는 디스크를 재구성했기 때문입니다. 내 목표는 live-f1 피드에서 Formula 1 드라이버의 위치를 ​​파일로 가져 오는 것입니다. 작년에 첫 번째 터미널에서 live-f1 프로그램을 실행 한 다음 두 번째 터미널을 시작하고 첫 번째 터미널 화면을 캡처 한 명령을 사용하여 파일에 저장했습니다 (작년 파일의 사본 : upload.ee/download/1223347 /0b6545ce227661452c8/html.log ). tty "첫번째 터미널 포인터" "filename" "간격"
Gustav

3

로깅 기능 과 함께 GNU 화면을 사용할 수 있습니다 . 이 명령을 사용하면 출력을 디스크로 플러시하는 빈도를 제어 할 수 있습니다. 스크린 사용자 설명서에서 :logfile flush secs

— 명령 : logfile flush secs

로그 파일의 이름을 정의합니다. 기본값은 'screenlog. % n'입니다. 두 번째 형식은 로그 파일 버퍼를 파일 시스템으로 플러시하기 전에 화면이 대기하는 시간 (초)을 변경합니다. 기본값은 10 초입니다.


내가 살펴볼 게
Gustav
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.