Wie folgt man einer Binärdatei von Anfang an (a la “tail -f”)?


10

Ist es möglich, einer Binärdatei von Anfang an zu folgen, a la tail -f?

Dies ist in einigen Fällen nützlich, z. B. wenn ich scpeine Datei an einen Remote-Server weitergebe und sie gleichzeitig einem anderen Prozess zuführen möchte (ja, ich weiß, dass ich ssh+ catTricks verwenden kann).

Soweit ich aus dem FM lese, tailist geschrieben mit Textdateien im Auge.

Gibt es eine einfache Möglichkeit, solche Operationen mit Standard-Posix-Tools durchzuführen?


Wo steht, dass tailnur mit Textdateien verwendet werden kann?
Rozcietrzewiacz

@rozcietrzewiacz Auf älteren Unices haben textorientierte Dienstprogramme wie z. B. tailBinärdateien nicht immer verarbeitet: Sie können Nullbytes ersticken oder Streubytes nach dem letzten Zeilenumbruch in den Eingabedateien weglassen. Moderne Systeme kommen zurecht.
Gilles 'SO - hör auf böse zu sein'

Antworten:


12

tailfunktioniert mit binären Daten genauso gut wie mit Text. Wenn Sie ganz am Anfang der Datei beginnen möchten, können Sie verwenden tail -c +1 -f.


Funktioniert das bei niemandem? Ich habe eine Binärdatei mit 16 Vorkommen einer Zeichenfolge, die ich bei der Verwendung sehe cat bin_file | strings - -o | grep match_string, aber wenn ich dies tue tail -c +1 -f bin_file | strings - -o | grep match_string, erhalte ich nach der 9. Übereinstimmung nichts mehr. Ich habe auch festgestellt, dass die Zeilennummern von -oim Vergleich zur Katzenausgabe alle 1 weniger sind. Wenn ich den Grep weglasse, bekomme ich alle 16 Übereinstimmungen (gemischt mit allem anderen), also dachte ich, das Problem sei Grep, aber ich habe einen Perl-
Einzeiler
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.