2010-08-27 12 views

Répondre

1
perl -e 'print ord("_"), "\n"' 
+0

thx beaucoup, je vais utiliser cette expression avec unpack: perl -e 'imprimer unpack ("H *", "-"), "\ n"' –

+0

Mais ceci Perl doit être installé ... –

7

Cela fonctionne dans Bash, Dash (sh), ksh, zsh et de cendres et utilise seulement builtins:

Edit:

Voici une version de ord qui sort dans l'hexagone et chr qui accepte l'entrée hexagonale:

ordhex() 
{ 
    printf '%x' "'$1" 
} 

chrhex() 
{ 
    printf \\x"$1" 
} 

Les versions décimales originales:

ord() 
{ 
    echo -n $(((256 + $(printf '%d' "'$1"))%256)) 
} 

Exemples (avec les nouvelles lignes ajoutées):

$ ord ' ' 
32 
$ ord _ 
95 
$ ord A 
65 
$ ord '*' 
42 
$ ord \~ 
126 

Voici le correspondant chr:

chr() 
{ 
    printf \\$(($1/64*100+$1%64/8*10+$1%8)) 
} 

Exemples:

$ chr 125 
} 
$ chr 42 
* 
$ chr 0 | xxd 
0000000: 00          . 
$ chr 255 | xxd 
0000000: ff          . 
+0

thx mais la fonction ord me donne la valeur décimale, je voudrais la valeur hexadécimale du code ascii, merci pour votre aide –

+0

@Olivier: Voir mon edit. –

+0

super, ça marche! Merci beaucoup –

0

python -c « import sys; print "{0: 02x}". Format (ord (sys.argv [1])) ' '_'

ou

python -c' print "{0: 02x}" .format (ord ("_")) '

Je suis d'accord pour dire que ce n'est pas le plus sympa, mais je n'ai pas pu résister après avoir vu la réponse basée sur Perl.

0

Les travaux suivants dans la version ksh j'utilise:

chr() 
{ 
    printf \\x$1 
} 
Questions connexes