Linux Komandozeile (awk etc) Hex zu Bin in Textdatei

OP #5354919
Lesenswert?
• ▲
▼
Vielleicht kann mir jemand schnell helfen, geht drum folgenden hex-Text 
in gleichlangen (mit 0 verlängerten) bin-txt zu wandeln:
Hex:
1
E6994
2
E6995
3
E6996
4
E6997
5
E6998
6
...
Bin (sollte immer gleichlang sein):
1
11110101110101101000
2
11110101110101101001
3
11110101110101101010
4
11110101110101101011
5
...

Mein awk-script, welches aber irgendwie keine neuen Zeilen erkennen will 
(bin vermutlich zu doof):
1
awk 'BEGIN {
2
FS = ""
3
RS = ""
4
a["F"]="1111"
5
a["E"]="1110"
6
a["D"]="1101"
7
a["C"]="1100"
8
a["B"]="1011"
9
a["A"]="1010"
10
a["9"]="1001"
11
a["8"]="1000"
12
a["7"]="0111"
13
a["6"]="0110"
14
a["5"]="0101"
15
a["4"]="0100"
16
a["3"]="0011"
17
a["2"]="0010"
18
a["1"]="0001"
19
a["0"]="0000"
20
a["\n"]="\n"
21
}
22
{
23
for (i=1;i<=FS;i++) printf a[$i]; 
24
}' < hex.txt > bin.txt


Hex-Dateien stammen aus HP-16500C Logikanalyzer und ist der 
Input-Pattern/Output eines PAL20L8, welches ich gerne dem 
Espresso-Logikknacker füttern würde. (müsste dazu eben in bin sein)

Wenn man das Format am HP-LA vorher auf binär umstellt, bekommt man die 
Daten sogar direkt als bin. Nur hab ich das dummerweise anfänglich nicht 
gemacht. Vermutlich ist der betreffende Chip auch hinüber, aber ich 
würde gern noch die alten (als Hex ausgelesenen) Daten testen, bevor ich 
den Chip definitiv als tot erkläre.

Danke für die Hilfe
OP #5355674
Lesenswert?
• ▲
▼
Skript, welches funktioniert:
1
awk 'BEGIN {
2
FS = ""
3
a["F"]="1111"
4
a["E"]="1110"
5
a["D"]="1101"
6
a["C"]="1100"
7
a["B"]="1011"
8
a["A"]="1010"
9
a["9"]="1001"
10
a["8"]="1000"
11
a["7"]="0111"
12
a["6"]="0110"
13
a["5"]="0101"
14
a["4"]="0100"
15
a["3"]="0011"
16
a["2"]="0010"
17
a["1"]="0001"
18
a["0"]="0000"
19
}
20
{
21
getline < "hex.txt"; for (i=1;i<=length($0);i++)  printf a[($i)]; print ""
22
}' hex.txt > bin.txt
(Firma: Potilatormanufaktur) #5355865
Lesenswert?
• ▲
▼
Deine Beispieldaten:
> E6994
> E6995
> E6996
> E6997
> E6998
> ...

Was du daraus machen wolltest:
> 11110101110101101000
> 11110101110101101001
> 11110101110101101010
> 11110101110101101011
> ...

Ergebnis deines Skripts:
> 11100110100110010100
> 11100110100110010101
> 11100110100110010110
> 11100110100110010111
> 11100110100110011000

Da stimmte was in deiner Frage einfach nicht.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.