ascii wert eines zeichens ????

A

Animal

Jungspund
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
Code:
#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
Code:
g++ -o text2int ascii.cpp
./text2int <Zeichenfolge, die konvertiert werden soll>
in der Konsole.
 
Code:
echo -n 'a' | od -t x1
Den Byteoffset kannst du dann ja noch mit sed wegschneiden, also:
Code:
echo -n 'a' | od -t x1 | sed -n '$!s/^.\{8\}//p'
 
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
 
Zuletzt bearbeitet:
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. ;)
 

Ähnliche Themen

Wie vom Script verwendete Befehle ermitteln um sie bei Bedarf nach zu installieren?

Shell script will nicht richtig laufen in einem cronjob

Falsche Ausgabe von $LINENO

Zeilen aus Txt-Datei entfernen, wenn eine Spalte einen bestimmten Wert enthält

gnu parallel Zeichen lesen und Wert berechnen

Zurück
Oben