live-f1の出力をファイルに書き込む方法


10

ターミナルを開いてlive-f1を実行し、毎秒変化するターミナル(テキスト)にライブフィードを表示しました。このプログラムの実行中は(Enterキー)のみ使用できます(プログラムを終了します)。そのため、コンソールに何かを入力することはできません。

1秒ごとなど、端末の内容をファイルに書き込みたいのですが。

どうすればできますか?

2番目のコンソールを開いて、コマンドを使用しますか?

setterm -dumpコマンドで動作しません。

回答:


8

live-f1topまたはと同様に、端末制御文字(ncurses)を使用して、新しいデータで画面を再描画しますmtr。そのため、ファイルまたは非端末デバイスにリダイレクトすると、このすべてのジャンクが表示されます。

残念ながら、live-f1は、統計などのデータを保存して後で抽出するために適切な出力を取得するためのオプションを提供していません。出力を保存して後で再生する場合は、を使用できますscript

これにより、live-f1が記録され、typescriptとtimingfileの2つのファイルが作成されます。

script -c live-f1 -t 2> timingfile

これは出力を再生します

scriptreplay timingfile

7

出力をファイルに取り込むために使用する方法がいくつかあります。

script

これによりサブシェルが作成され、すべての出力がそこに配置されます。そうscript、それからあなたが望むものは何でも、exitあなたのサブシェルを終了し、あなたの出力は「typescript」と呼ばれるファイルになります

tee

パイプのすべてを別の場所にエコーできます。したがってtee、標準出力をファイルに出力できます。

$ mycommand | tee myoutput

標準エラーもキャプチャする必要がある場合は、それをリダイレクトします。

$ mycommand 2>&1 | tee myoutput

6

このようにプログラムを実行するのはどうですか:

program > /path/to/file

これはの出力program/path/to/file瞬時にリダイレクトします。

また、出力を端末に保存するだけでなく、ファイルに保存する場合も同様です。チェックアウトbashに出力をリダイレクトして、それでもstdoutに移動させる方法はありますか?


素早い回答ありがとうございます。これはほとんど機能しますが、ファイルの内容のみがビットマングルされます。HTMLにする必要がありますが、代わりにファイルを開くと、奇妙な記号がいくつかあります。スクリーンショットを参照してください:upload.ee/image/1223166/ss_01.png。プログラムの名前はlive-f1です。
グスタフ

面白いですね。プログラムはHTMLのみを出力しますか?アニメーションや変なものはありますか?
phunehehe

これは、標準出力のみをリダイレクトします。標準エラーも必要ですか?
Faheem Mitha、2011年

2
@Gustavそこに閉じ込められたANSIコードもあります。アプリケーションは、ある種の進行状況カウンター(どのように見えるか)を出力するか、その出力に色を付けるか、または類似しています。これをオフにする方法がある場合は、それを使用してクリーンな出力をキャプチャする必要があります。ただし、アプリケーションはHTMLを出力しないため、HTMLをキャプチャするには、出力を変換する他のアプリケーションが必要になります。
Matthew Scharley、2011年

HTMLだと言っているのは、1年前に動作したためですが、動作環境があったディスクを再構成しました。私の目標は、F1ドライバーのポジションをlive-f1フィードからファイルに取り込むことです。昨年、1つ目の端末でlive-f1プログラムを実行し、2つ目の端末を起動して、1つ目の端末画面をキャプチャしたコマンドを使用してファイルに保存しました(昨年のファイルからのコピー:upload.ee/download/1223347 /0b6545ce227661452c8/html.log)。コマンドは次のようなものでした:tty "1st terminal pointer" "filename" "interval"
Gustav

3

ロギング機能とともに、GNU screenを使用できます。また、この コマンドを使用すると、出力がディスクにフラッシュされる頻度を制御できます。画面のユーザーズマニュアルから:logfile flush secs

—コマンド:logfile flush secs

ログファイルが取得する名前を定義します。デフォルトは 'screenlog。%n'です。2番目の形式は、ログファイルバッファーをファイルシステムにフラッシュする前に画面が待機する秒数を変更します。デフォルト値は10秒です。


調べてみます。
グスタフ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.