• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[solved] how to: cat, grep, sort, cut ...binary file

Hi zusammen,

ich benötige eure Hilfe.

Wie kann man eine binäre Datei mittels cat, grep, sort, cut, blabla durchsuchen lassen?

Gibt es ein Befehl ähnlich wie dos2unix um binary files in ascii umzuwandeln?

Hmm, gibt es einen Befehl, der mir sagt, was für eine Datei vorliegt, also ascii, hex, ...

Danke für eure Hilfe.
 

regexer

Advanced Hacker
xeroxed_yeti schrieb:
Wie kann man eine binäre Datei mittels cat, grep, sort, cut, blabla durchsuchen lassen?
Nach was willst du suchen?

Gibt es ein Befehl ähnlich wie dos2unix um binary files in ascii umzuwandeln?
Code:
man strings
Dieser Befehl sucht zumindest alle Druckbaren Zeichen geraus. Ansonsten kann man auch hexdump verwenden... Das kommt ganz auf den Anwendungsfall an.

Hmm, gibt es einen Befehl, der mir sagt, was für eine Datei vorliegt, also ascii, hex, ...
Code:
man file
 

pft

Advanced Hacker
also irgendwie meinst Du vermutlich etwas anderes als ich verstehe.
Die genannten Tools funktionieren alle, bei alle Dateien (insbesondere cat, aber im Prinzip auch grep, nur die zeilennummer sagt dann wenig)
Allerdings ist die Anwendung manchmal wenig sinnvoll, z.B. bei "sort". Sort sortiert zeilen und eine Binärdatei hat keine Zeilen. Was also soll das?

Allgemein ist eine Umwandlung von binary in ascii Unsinn. Du könntest genauso gut nach einer umwandlung eines Bildes in ein audio-file fordern.
Es sei des das binary ist eine spezielle kodierung einer ascii datei

Vielleicht denkst Du nochmal drüber nach und sagst und was wirklich dein Problem ist.
 
OP
xeroxed_yeti

xeroxed_yeti

Member
ok, dann will ich euch einen kleinen Einblick in das Problem geben.

Es geht darum, ein Kollege von mir (Biologe) hat eine Reihe von Messreihen durchgeführt. Das ganze wird von einer Software verwaltet und die Daten in mehere Files gespeichert. Nun hätte er gerne nach gewissen Werten über einen bestimmten Zeitraum gefiltert. Mein Problem ist nun, dass die Software diese Daten in mehreren kleineren Packeten ablegt und diese würde ich nun gerne nach bestimmten Werten durchsuchen.
Hier ist nun genau das Problem, wie kann ich diese Dateien nun durchsuchen lassen.
Die Software öffnet die ganze Datei und erstellt aus dem Daten (>4GB) einen Graph, in dem man rein und rauszoomen kann. Die höchsten Peaks die dort angezeigt werden zu einem gewissen Zeitraum hätte er gerne nun in einer Tabelle.

Mein erstes Problem ist nun:
1) In welche dieser Dateien steckt die Information zum zeichnen des Graphes, bzw. ist diese Info nur in einer Datei oder in mehreren verteilt.

d.h. ich habe gewisse Zahlen, die ich in diesen Dateien suchen mag. Habe ich diese gefunden, dann weiß ich, dass die Datei zum Graphen gehört.
 

regexer

Advanced Hacker
xeroxed_yeti schrieb:
Es geht darum, ein Kollege von mir (Biologe) hat eine Reihe von Messreihen durchgeführt. Das ganze wird von einer Software verwaltet und die Daten in mehere Files gespeichert.
Und unser Problem ist: Wir können so nicht sagen, wie die "Biologen-Software" die Daten ablegt. Es ist möglich, dass die Messwerte in floats abgespeichert werden oder in integers (big endian oder little endian?) oder in einem anderen Format. Da bleibt eigentlich nur eines: Einen Teil der Daten hexdumpen und versuchen, anhand von bereits bekannten Messwerten die Daten zu verstehen...
 

useher

Member
Du solltest erst man nach einer Dokumentation des Formates suchen, ansonsten weißt du nicht, welches Byte überhaupt was ist. Dann kann man sich weiterunterhalten. Das Suchen in Binärfiles ist ziemlicher unsinnig, wenn man nicht wirklich genau weiß, wo man was zu suchen hat. Die beste Lösung wäre IMHO hier alles aufzulösen und in eine DB wie Postgres zu packen.

gruß Uwe
 
OP
xeroxed_yeti

xeroxed_yeti

Member
ok, danke für eure unterstüzung.

ich werde mir die doku ansehen und die daten per hexdump bearbeiten.

...es wird bestimmt nicht lange dauern, bis hier meine nächste Frage auftaucht :)

bis später :p
 

pft

Advanced Hacker
ich kann die Vorredner nur bestätigen. Dein Problem ist (noch) nicht das Filtern und Analysieren der Daten sondern das Verstehen bzw. ganz banal das Lesen.
Und da helfen dir die genannten Programme nicht. Es gibt andere dafür (am aber dazu brauchst Du erst mal das ge aue Dateiformat.
 

regexer

Advanced Hacker
pft schrieb:
aber dazu brauchst Du erst mal das ge aue Dateiformat.
Falls dieses nicht dokumentiert ist (was leider die Regel ist), muss man selbst mit dem Hexdumper ran. Ein Ansatzpunkt wäre zu versuchen, ein Datum-Messwert-Paar ausfindig zu machen.

Aber wie bereits erwähnt können Messwerte verschiedene Formate haben.

Und Datumsfelder auch (Sekunden seit 1970 als signed Integer, Sekunden seit Jesu Geburt als packed numeric, Tage seit 1904 als float usw. usf.). Diese verraten sich aber dadurch, dass sie hohe Werte enthalten, die sich mit der Zeit leicht verändern...

Naja, viel Spaß :wink:
 
OP
xeroxed_yeti

xeroxed_yeti

Member
hey,

ich habe ja versprochen, dass ich euch auf dem Laufenden halte.


Es ist immer wieder schön zu erleben wie sehr sich doch manche Leute mit ihrer kommerziellen Software auskennen, die mind 5% des Jahresbudget ausmacht!


Zu Anfangs wollte ich die Daten per hexdump analysieren, doch dann kam ich durch eure Unterstüzung auf die Idee mir eigentlich die Man Pages der Software anzusehen. Also bin ich in das Labor meines Kollegen spaziert! Dort habe ich mir die Software dann genauer angeschaut, ca 600MB feinstes Visual Basic auf Windows ..... ui :shock:
Na dann mal ran an das Zeugs, aber zuerst ab zur Kaffeemaschine! Mutig den Ordner angeklickt um den ersten Überblick zu bekommen. Der erste Schluck Kaffee rüttelt mich wach. Der rechte Zeigefinger reißt voller Elan am Mausrad um weitere Einblicke in die Software zu verraten. Mittlerweile habe ich immer hin schon die oberen 40 Einträge in der File mal inspiziert und es liegen nur noch schlappe weitere 400 vor :? Der dritte Schluck Kaffee rinnt meine Kehle entlang, jetzt bin ich bei D angekommen. D ... D wie Databridge ... NEIN!!! Ein klick auf Databridge, schnell noch die Dateien einladen, ASCII einstellen und auf convert klicken... fertig:)

jaja, also mir war das eine große Lehre!

Danke für die zahlreichen Posts :)
 

regexer

Advanced Hacker
xeroxed_yeti schrieb:
Es ist immer wieder schön zu erleben wie sehr sich doch manche Leute mit ihrer kommerziellen Software auskennen, die mind 5% des Jahresbudget ausmacht!
[...]Dort habe ich mir die Software dann genauer angeschaut, ca 600MB feinstes Visual Basic auf Windows ..... ui :shock:
Kommerzielle Software und man hat gleichzeitig die Sources? Naja, ich muss ja nicht alles verstehen. ;)
 
Oben