Cara menulis output live-f1 ke dalam file


10

Saya membuka terminal dan menjalankan live-f1 yang menampilkan umpan langsung dalam terminal (teks) yang berubah setiap detik. Hanya "Enter" yang dapat digunakan saat program ini berjalan (keluar dari program itu). Jadi, Anda tidak dapat mengetik apa pun di konsol.

Saya ingin menulis konten terminal ke dalam file, seperti setelah setiap detik.

Bagaimana saya bisa melakukannya?

Dengan membuka konsol ke-2 dan menggunakan beberapa perintah?

Tidak bisa menjalankannya dengan perintah setterm -dump.

Jawaban:


8

live-f1redraws layar dengan data baru dengan menggunakan karakter kontrol terminal (ncurses), seperti topatau mtr. Itu sebabnya Anda melihat semua sampah ini ketika mengarahkan ke file atau perangkat non terminal.

Sayangnya, live-f1tidak memberikan opsi untuk mendapatkan output yang sesuai untuk disimpan dan kemudian mengekstrak data untuk statistik dan semacamnya. Jika Anda masih ingin menyimpan output untuk memutar ulang nanti, Anda dapat menggunakannya script.

Ini akan merekam live-f1 dan membuat dua file, naskah dan waktufile.

script -c live-f1 -t 2> timingfile

Ini akan memutar ulang output

scriptreplay timingfile

7

Ada beberapa cara yang saya gunakan untuk menangkap keluaran menjadi file yang mungkin berguna bagi Anda.

script

Ini menciptakan subkulit dan menempatkan semua output ke dalamnya. Begitu juga script, lalu apa pun yang Anda inginkan, maka exituntuk mengakhiri subkulit Anda dan output Anda akan berada dalam file yang disebut "naskah"

tee

Anda dapat menggema semua pipa ke tempat lain. Jadi Anda dapat teemematikan output standar Anda menjadi file:

$ mycommand | tee myoutput

Jika Anda perlu menangkap kesalahan standar juga mengarahkannya:

$ mycommand 2>&1 | tee myoutput

6

Bagaimana dengan menjalankan program seperti ini:

program > /path/to/file

Ini mengarahkan output programke menjadi /path/to/fileinstan.

Dan jika Anda ingin memiliki output di terminal Anda, serta simpan ke dalam file. Lihat apakah ada cara di bash untuk mengarahkan ulang output dan masih menggunakannya untuk stdout?


Terima kasih atas jawaban cepatnya. Ini hampir berhasil, hanya isi file yang sedikit rusak. Seharusnya dalam HTML, tetapi sebaliknya, ketika saya membuka file ada beberapa simbol aneh, lihat screenshot: upload.ee/image/1223166/ss_01.png . Nama programnya adalah live-f1.
Gustav

Itu terlihat lucu. Apakah Anda yakin program hanya menghasilkan HTML? Apakah ada animasi atau sesuatu yang aneh?
phunehehe

Ini hanya akan mengarahkan output standar. Apakah kesalahan standar juga diperlukan?
Faheem Mitha

2
@ Gustav Ada kode ANSI yang terperangkap di sana juga. Entah aplikasi Anda menghasilkan semacam penghitung kemajuan (Seperti apa tampilannya), atau warna hasilnya, atau serupa. Jika ada beberapa cara untuk mematikan ini maka Anda harus menggunakannya untuk menangkap keluaran bersih. Aplikasi Anda tidak menghasilkan HTML, jadi untuk menangkap HTML Anda memerlukan beberapa aplikasi lain untuk menerjemahkan hasilnya.
Matthew Scharley

Mengapa saya menyaingi itu HTML, karena saya membuatnya berfungsi tahun lalu, tetapi telah memformat ulang disk tempat saya memiliki lingkungan kerja. Tujuan saya adalah mendapatkan posisi driver Formula 1 dari feed live-f1 ke dalam file. Saya mendapatkannya bekerja tahun lalu dengan menjalankan program live-f1 di terminal 1, kemudian menjalankan terminal ke-2 dan menggunakan beberapa perintah yang menangkap layar terminal ke-1 dan menyimpannya ke file (salin dari file tahun lalu: upload.ee/download/1223347 /0b6545ce227661452c8/html.log ). Perintahnya kira-kira seperti itu: tty "1st terminal pointer" "filename" "interval"
Gustav

3

Anda bisa menggunakan layar GNU , bersama dengan fungsi pencatatannya . Perhatikan juga bahwa logfile flush secsperintah ini memungkinkan Anda untuk mengontrol seberapa sering output di-flush ke disk. Dari Panduan Pengguna Layar:

- Perintah: detik flush logfile

Menentukan nama file log akan dapatkan. Standarnya adalah 'screenlog.% N'. Bentuk kedua mengubah jumlah detik layar yang akan menunggu sebelum membilas buffer logfile ke sistem file. Nilai default adalah 10 detik.


Saya akan memeriksanya.
Gustav
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.