PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : dezimale Entsprechung eines Zeichens herausfinden



atomical
16-11-2005, 14:03
Hallo!

Was ich suche, ist eine Bash-Entsprechung für den ord-Befehl (Pascal) - ich möchte von einem einzelnen, gegebenen Zeichen die dezimale Entsprechung (ASCII Tabelle) herausfinden - und das in beiden Richungen pipe-fähig.

An der Pipe-Fähigkeit scheiter ich gerade mit meinen rudimentären C-Kenntnissen und bevor ich wieder fürs Archiv entwickel, wollt ich fragen, ob es sowas gibt / wie es sich vielleicht einfacher realisieren lässt.

ninguno
16-11-2005, 15:11
der ascii code von "A"
echo -n "A" | od -An -td1

atomical
16-11-2005, 16:22
Danke - leider klappt das nicht mit jedem Zeichen:
alex@phoenix:~/work/fuba$ echo -n "º" | od -An -td1
-70
Mittlerweile hab ich die Lösung für mein Problem gefunden:
alex@phoenix:~/work/fuba$ CHAR=$(expr `grep "º" ascii | awk '{ print $1 }'` - 144 )
alex@phoenix:~/work/fuba$ grep $CHAR ascii | head -n 1 | awk '{ print $3 }'
*
Die Datei ascii enthält schlicht eine Tabelle mit den Entsprechungen.

michael.sprick
16-11-2005, 17:01
evtl. hilft auch:



echo -e -n "A" | perl -e 'while(<>){ print unpack("C",$_);}'


siehe auch perldoc -f unpack

atomical
16-11-2005, 17:15
Das klappt auch - ist eleganter als der Weg über die Tabelle :)

Joghurt
19-11-2005, 15:24
perl -e 'while(<>){ print unpack("C",$_);}'Dafür gibt es doch die -n Option:
perl -ne 'print unpack("C",$_);'