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

ASC to BIN und andersrum

mat ratze

Newbie
Hallo,

ich möchte eine ASCII-Datei mit z.B. den Inhalten "A0FF0E113400....." in eine binäre Datei umsetzen. Oder umgekehrt die Bytes einer binären Datei (z.B. Bitmap) in ASCII "A0FF0E113400....." umsetzen.

Gibt es ein kleines Tool oder Tipp dafür, am liebsten mit Linux/Unix Bordmitteln, keine speziellen Programme aus irgendwelchen Paketen. Ich bin öfter an anderen Servern und kann nicht immer was installieren für so einen eigentlichen Kleinkram wie diese Konvertierung...

Mit DD geht das wohl nicht, habt ihr Ideen?
 

regexer

Advanced Hacker
Ersteinmal hoffe ich, dass ich dein Problem richtig verstanden habe...

Ich würde es mit der Scriptsprache Perl machen. Perl ist in jeder Linux-Installation als Standardpaket mit dabei. Meist ist das sogar ein muss, da manche Installationsroutinen mit perl geschrieben sind...
Für dein Problem würde ein Script (z.B. hex.pl) wiefolgt aussehen:
Code:
#!/usr/bin/perl

while (<>) {
print pack "H*", $_;
}
Benutzen würde man es mit
Code:
cat eingabe.txt | hex.pl >ausgabe.bin
Man könnte es aber auch auf der Kommandozeile erledigen. Da würde das so aussehen:
Code:
cat eingabe.txt | perl -e 'while (<>){print pack "H*",$_;}' > ausgabe.bin

Übrigens: Alles was in der Dateieingabe nicht Hex ist, wird automatisch und stillschweigend ignoriert.

Gruß,

echo 6E6F20746F2058500A | perl -e 'while (<>){print pack "H*",$_;}'
 

regexer

Advanced Hacker
Ich habe gerade gemerkt, dass ich nur die halbe Antwort geliefert habe. Der Weg zurück geht so:
Code:
#!/usr/bin/perl

$/="";
while (<>) {
print unpack "H*", $_;
}
Oder auf der Kommandozeile:
Code:
cat eingabe.bin | perl -e '$/="";while (<>){print unpack "H*",$_;}' > ausgabe.txt
 
OP
M

mat ratze

Newbie
Hallo notoxp,

danke für Deinen Beitrag. Mit Perl habe ich mich noch nie befasst. Wenn Zeit ist, probiere ich das mal aus.

Ich habe inzwischen ein Programm namens "srecord" gefunden. Das ist eigentlich dazu da, um EPROM-Dateien (die elektrisch programmierbaren ROMs) hin und her zu konvertieren. Und das kann u.a. auch eine ausführbare Datei in ASCII-HEX umwandeln und natürlich auch wieder zurück.
 

regexer

Advanced Hacker
mat ratze schrieb:
Ich habe inzwischen ein Programm namens "srecord" gefunden.
Das habe ich gar nicht... Weder in meiner SLES 7 noch in meiner SLES 8 Enterprise Installation.

Ich schätze in diesem Fall führen sicher viele Wege nach Rom.
 
Oben