Archiv verlassen und diese Seite im Standarddesign anzeigen : ascii wert eines zeichens ????
wie kann ich mir in einer shell (bash) den ascii wert eines zeichens ausgeben lassen ???
Was meinst du genau mit Ascii wert? Den zugehörigen hex / dezimal code?
Wenn ja geh einfach auf Wikipedia http://de.wikipedia.org/wiki/Ascii
oder mach folgendes:
ascii.cpp
#include <iostream>
#include <cstdio>
using namespace std;
int main(int argc, char * argv[]) {
if (argc < 2) {
return 1;
}
int i,j, k;
for (i=1; i<argc; i++) {
for (j=0; j<strlen(argv[i]); j++) {
k = (int)argv[i][j];
cout << hex << k << endl; //wenn dezimal gesucht, einfach das << hex weglassen!
}
if (i != (argc-1)) {
k = (int)' ';
cout << hex << k << endl; //wenn dezimal gesucht, einfach das << hex weglassen!
}
}
return 0;
}
dann
g++ -o text2int ascii.cpp
./text2int <Zeichenfolge, die konvertiert werden soll>
in der Konsole.
echo -n 'a' | od -t x1
Den Byteoffset kannst du dann ja noch mit sed wegschneiden, also:
echo -n 'a' | od -t x1 | sed -n '$!s/^.\{8\}//p'
Wolfgang
02.05.2005, 16:31
Geht auch mit perl sehr gut, warum mit Kanonen auf Spatzen schießen? :D
Gibt dir das Zeichen Hexwert Oktalwert für alles was du da via pipe reinreichst.
echo "abcd"|perl -anle 'map{printf "Char:%s -> hex: %X ->okt: %o\n",$_,ord($_ ),ord($_)}split "",$_'
Ich liebe perl für seine Einzeiler.
:D
Gruß Wolfgang
wieso so kompliziert?!? das geht doch genauso mit xev:
KeyRelease event, serial 30, synthetic NO, window 0x1c00001,
root 0x48, subw 0x0, time 173896334, (967,-144), root:(971,396),
state 0x10, keycode 42 (keysym 0x67, g), same_screen YES,
XLookupString gives 1 bytes: (67) "g"
... demnach hat g die zahl 67.
@dramen: Wenn du den ASCII Wert des Zeichens in einem Shellscript weiterverwenden willst, hast du mit dem Format der Ausgabe von xev ein Problem. Du hast allerdings Recht, wenn es um die Fülle der Informationen geht :)
sorry. hab nicht gesehen dass es hier um shell-skripte geht.
demnach ist 'echo -n '1' | od -t x1 | cut -d' ' -f2 | head -1' sicher eine gute lösung. ;)
Powered by vBulletin® Version 4.2.0 Copyright ©2013 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.