Apakah mungkin untuk mengikuti file biner dari awal, ala tail -f
?
Ini berguna dalam beberapa kasus, misalnya jika saya scp
memasukkan file ke server jauh, dan pada saat yang sama saya ingin memasukkannya ke proses lain (ya, saya tahu saya bisa menggunakan ssh
+ cat
trik).
Sejauh yang saya baca dari FM, tail
ditulis memiliki file teks dalam pikiran.
Apakah ada cara sederhana untuk melakukan operasi seperti itu menggunakan alat posix standar?
text-processing
tail
binary
Marcus
sumber
sumber
tail
hanya dapat digunakan dengan file teks?tail
tidak selalu mengatasi file biner: mereka mungkin tersedak null byte atau menghilangkan byte liar setelah baris terakhir terakhir pada file input. Sistem modern memang mengatasinya.Jawaban:
tail
bekerja dengan data biner sama halnya dengan teks. Jika Anda ingin memulai dari awal file, Anda dapat menggunakannyatail -c +1 -f
.sumber
cat bin_file | strings - -o | grep match_string
, tetapi ketika saya melakukannyatail -c +1 -f bin_file | strings - -o | grep match_string
, saya tidak mendapatkan apa-apa melewati pertandingan ke-9. Saya juga mencatat bahwa nomor baris dari-o
semua 1 lebih sedikit dibandingkan dengan output cat. Jika saya meninggalkan grep off, saya mendapatkan semua 16 pertandingan (dicampur dengan yang lain), jadi saya pikir masalahnya adalah grep, tapi saya mencoba perl satu-liner dan berhenti di tempat yang sama ...