端末の内容をファイルに書き込む方法


13

私の状況は次のとおりです。私はターミナルを開き、ターミナル(テキスト)でライブフィードを毎秒表示するプログラムを実行します。このプログラムの実行中は「Enter」キーのみを使用できます(プログラムを終了します)。したがって、コンソールに他の何かを入力することはできません。

毎秒など、その端末の内容をファイルに書き込みたいと思います。

どうすればいいのですか?2番目のコンソールを開き、いくつかのコマンドを使用しますか?setterm -dumpコマンドでは動作しません。


1
うーん、これはどのアプリケーションですか?十分にチェックしていない場合は、アプリケーションに出力をどこかに保存するオプションがあるかどうかを確認する必要があります。
セベロラズ

確認しました。そうではありません。それ以外の場合、この問題は発生しません。プログラムはlive-f1、launchpad.net
グスタフ

回答:


16

出力をteeプログラムにパイプできます(description):

my_program ... | tee my_program.log

これにより、端末に出力が表示されますが、ファイルにも出力されます my_program.log


最初の回答と同じ結果。:/
グスタフ

1
投稿したスクリーンショットには、多くのターミナルエスケープシーケンスが含まれているようです。ランチパッド情報から、ncursesを使用します(ソースをbzr branch lp:live-f1でダウンロードし、で調べましたREADME)。TERMダム(export TERM=dumb)に設定して、色なしでプログラムを実行できますか?ソースにはTODOファイルもあり、ドライバの履歴を保持するためにウィッシュリストに記載されています。開発者に連絡して、彼らが計画していることや、結果を保存する方法があるかどうかを確認することができます。
スティーバート

12

コンソールに出力を表示する代わりに、ターミナルからコマンドを実行しているとき、ファイルに直接リダイレクトできます。プログラムの実行中に、出力がファイルに書き込まれます。例では、lsコマンドを使用して、list.txtというファイルにフォルダーの内容を書き込むことができます。

ls > list.txt

>オペレータは、ニーズに応じて、あなたの出力をリダイレクトします。


THX、これは機能しますが、部分的に。コンテンツはHTMLである必要がありますが、ファイルを開くと、次のようになります(ファイルからの抜粋):VETTEL [21G(B [m [39; 49m。プログラムの名前は「live-f1」です。live-f1> live_f1_dump。ログ
グスタフ

@Gustavは、コンソールではhtmlを印刷し、ファイルでは上記の行を印刷するということですか?
トップレス

はい。これは、提案されたコマンドupload.ee/image/1223166/ss_01.pngを実行したときに得られるものです。私の目標は、F1ドライバーのポジションをlive-f1フィードからファイルに取り込むことです。昨年、1台目の端末でlive-f1プログラムを実行し、2台目の端末を起動し、1台目の端末画面をキャプチャしてファイルに保存するコマンドを使用することで機能しました(昨年のファイルからのコピー:upload.ee/download/1223347 /0b6545ce227661452c8/html.log)。コマンドはそのようなものでした:tty "1st terminal pointer" "filename"。それが私がそのために使用したものを「tty」にする何か他のものであった可能性があります。
グスタフ

2

scriptコマンドを使用してみてください。残念ながら、それは多くの制御文字gobbledegookをトランスクリプトに入れます。ただし、NCSSM CSサイトでこのリンクが表示される場合、問題に対する不完全ではあるがかなり良い解決策が見つかります。

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