grep und tail auf Binärdatei anwenden

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
ignoramus
Beiträge: 330
Registriert: 22.03.2006 11:14:37

grep und tail auf Binärdatei anwenden

Beitrag von ignoramus » 27.09.2011 18:22:39

Hallo,

ich habe mir ein kleines Skript gebastelt, mit dem ich mir die letzten 15 Zeilen des aktuellen Backup-Log-Files per E-Mail zusenden lasse. Es handelt sich um die Datei operations_log.utx eines Retrospect Backup-Systems auf einem Mac-Server. Diese Datei scheint eine Binärdatei zu sein und ich weiß nicht genau, wie ich diese weiter verarbeiten kann.

* Wenn ich die Datei im Terminal mit "more" ausgebe, kommt der Hinweis, dass es sich um eine Binärdatei handelt und more gibt mir nur Kraut und Rüben aus.
* Wenn es die letzten Zeilen mit "tail" ausgebe, ist die Ausgabe hingegen lesbar.

Ich würde nun aber gerne nicht nur die tail-Ausgabe haben, sondern die Ausgabe auch noch durch grep hindurchführen. Dieses erkennt aber keine Begriffe, die ich bei der Ausgabe mit tail sehe. Auch nicht, wenn ich die Option --binary-files=text angebe.

Hat vielleicht jemand eine Idee, wie ich die Binärdatei in eine grep-bare Datei umwandle? Ich weiß, das ist keine GNU/Linux-Frage; aber es geht ja um die gleichen Tools - und hier im Forum versammeln sich halt die schlauesten Leute. ;-)

Viele Grüße!
Karl

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: grep und tail auf Binärdatei anwenden

Beitrag von Cae » 27.09.2011 18:48:22

Code: Alles auswählen

tail -`wc -l file` file
Das ist eine flinke Idee: tail gibt die letzten n Zeilen einer Datei aus, also setzt man n auf die Anzahl der Zeilen der Datei: wc -l file.

Ungetestet, müsste aber funktionieren. Übrigens: less fragt genauso wie more nach und liefert mit Steuerzeichen aus.

Gruß Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

ignoramus
Beiträge: 330
Registriert: 22.03.2006 11:14:37

Re: grep und tail auf Binärdatei anwenden

Beitrag von ignoramus » 28.09.2011 10:20:37

Hallo!

Vielen Dank für Deine Antwort. Das Problem war aber nicht, die Datei per tail anzuzeigen, sondern grep in einer lesbaren Form zu übergeben, da grep direkt damit offenbar nicht klar kommt.

Ich habe es jetzt folgendermaßen lösen können:

Code: Alles auswählen

# echo "$(tail operations_log.utx)" | grep Begriff
Ohne "echo" hatte es auch nicht funktioniert.

deberik
Beiträge: 1177
Registriert: 30.09.2009 13:27:23

Re: grep und tail auf Binärdatei anwenden

Beitrag von deberik » 28.09.2011 10:54:51

ignoramus hat geschrieben:

Code: Alles auswählen

# echo "$(tail operations_log.utx)" | grep Begriff
Wenn das ein Befehl ist, denn du händisch eingibst oder kopierst, dann würde ich den echo-Teil schon in deinem Skript verwenden, bevor du die E-Mail sendest. Das sollte doch Tipparbeit sparen.
Debians Paketbeschreibungen übersetzen? Hilf mit!

ignoramus
Beiträge: 330
Registriert: 22.03.2006 11:14:37

Re: grep und tail auf Binärdatei anwenden

Beitrag von ignoramus » 28.09.2011 11:39:21

Ich habe das in einer Skriptdatei stehen. Vollständig ungefähr so:

Code: Alles auswählen

echo "$(tail operations_log.utx)" | grep Begriff | mail -s "Betreff" user@domain.de
Dieses Skript wird per cronjob täglich ausgeführt.

Antworten