Saya malas dan saya bisa menulis naskah untuk melakukan ini, tetapi saya bahkan terlalu malas untuk memikirkan bagaimana melakukannya.
Saya sering melakukan hal-hal seperti:
cris$ python runexperiment.py > output.txt
cris$ cat output.txt
Kadang-kadang ketika melihat hasil panjang dari percobaan, saya ingin membiarkan halaman itu hanya bergulir dan menonton pola-pola yang berurutan terbentuk dan tersebar. Tetapi menggunakan cat pada file dengan 1 juta baris selesai dalam mungkin 5 detik. Ini terlalu cepat bahkan untukku.
Apakah ada cara saya bisa memperlambat kecepatan melihat file, seperti 'utilitas gulir'? Saya ingin cepat, tetapi tidak 200k baris per detik (yang semuanya mungkin tampilan bahkan tidak akan pernah mendaftar).
Sesuatu seperti
cris$ scroll -lps=300 output.txt
Dan kemudian duduk dan menonton 300 baris per detik melewati akan ideal, saya kira.
cat FILENAME | pv -l -L 900 -q
. Batasnya adalah dalam byte per detik, bukan garis per detik, jadi saya membuat ini sebagai komentar, bukan jawaban.Jawaban:
Ada beberapa utilitas yang memungkinkan Anda menentukan tarif, seperti
pv
, tapi kecepatannya dalam byte per detik, bukan garis per detik.Tetapi jika Anda benar-benar ingin menggunakan lps, Anda bisa melakukan ini:
Di bawah perl,
print while <>
dapat diganti oleh-p
beralih:Mari mencoba:
Penjelasan:
300 baris / detik berarti 1 baris dengan 0,0033333333 detik.
print
tanpa cetakan argumen$_
yang mana ruang input default .disebut sebagai
... | perl -e
,... | perl -ne
atau... | perl -pe
, input standar akan secara otomatis ditetapkan*STDIN
yang mana deskriptor file default jadi<>
akan melakukan hal yang sama seperti<STDIN>
yang akan membaca dari input standar hingga$/
( input pemisah rekaman yang secara default a garis baru ) akan tercapai. Dalam bahasa Inggris, secara default<>
akan membaca satu baris dari input standar dan menetapkan konten ke$_
variabel.&&
adalah dan kondisi, tetapi digunakan di sana sebagai pemisah perintah rantai jadi setelah (berhasil) mencetak satu baris, lakukan perintah berikutnya.select
adalah Trik programmer untuk tidak menggunakansleep
. Perintah ini dirancang untuk menjebak peristiwa deskriptor file (input dan / atau output, file, soket dan / atau soket net). Dengan perintah ini, sebuah program bisa Tunggu untuk 3 jenis acara, feed siap dibaca , feed siap untuk ditulis dan beberapa peristiwa terjadi saat makan . Argumen keempat adalah batas waktu dalam detik, jadi sintaksnya adalahselect <feeds where wait for input>, <feeds where having to write>, <feed where something could happen>, <timeout>
.Untuk lebih presisi, Anda bisa menggunakannya
Time::Hires
modul perl:catatan:
$.
aku s nomor jalur input saat ini .Lebih baik ditulis sebagai
cat >catLps.pl
Pemakaian:
Jadi kita bisa:
Untuk kesenangan:
sumber
Time::HiRes
modul perl untuk akurasi lebih-p
beralih ke perintah perl, skrip diringankan!cukup gunakan awk dengan tidur:
sumber
Saya terlambat ke pesta, tetapi saya menemukan ini akan menjadi latihan pembelajaran yang berguna untuk dicoba dengan python, jadi saya akan memberikan apa yang saya dapat:
Ia menerima input dari stdin atau sebagai argumen (-i) dan secara default menulis satu baris per 1 / 10th per detik, tetapi itu dapat diubah dengan argumen lain (-d).
sumber