Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/07/2011, 17h23   #1
Membre régulier
 
Inscription : octobre 2006
Messages : 233
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : octobre 2006
Messages : 233
Points : 94
Points : 94
Par défaut Affichage caractère ASCII dans script Shell

Bonjour,

C'est surement une question de débutant mais je voudrais dans un script shell pouvoir afficher le caractère ASCII correspondant à un nombre stocké dans une de mes variables. Par exemple, si cette variable, contient la valeur 65, je souhaiterai pouvoir afficher à l'écran 'A'.

Avec "echo", j'ai vu que l'on pouvais le faire mais en fournissant soit la valeur en octal, soit la valeur en hexadécimal. Et avec printf, je n'y arrive pas.

Si quelques personnes pouvaient me donner des pistes pour résoudre ce problème tout bête, ce serait sympa.

merci d'avance...
kuja2053 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2011, 19h50   #2
Membre régulier
 
Inscription : octobre 2006
Messages : 233
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : octobre 2006
Messages : 233
Points : 94
Points : 94
Par défaut Suite

J'ai trouvé.

Pour les intéressés:

Code :
1
2
3
 
test=65
echo $test | awk '{ printf("%c",$test )  }'
kuja2053 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 29/07/2011, 00h57   #3
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 071
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 071
Points : 4 154
Points : 4 154
Bonjour,

bien vu le %c, mais ça ne peut pas fonctionner ainsi.

comme ça, oui :
Code :
1
2
3
4
5
6
test=65
echo $test | awk '{printf("%c\n",$1)}'
A
#ou
awk -vnum=$test 'BEGIN{printf("%c\n",num)}'
A
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 30/07/2011, 22h24   #4
Membre régulier
 
Inscription : octobre 2006
Messages : 233
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : octobre 2006
Messages : 233
Points : 94
Points : 94
Par défaut Suite

Merci pour ta réponse
Mais c'est quoi la différence de ta premiere méthode avec la mienne, à part le retour de ligne ?

Sinon, intéressant la deuxième méthode. Merci
kuja2053 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2011, 03h48   #5
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 071
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 071
Points : 4 154
Points : 4 154
Bonjour,

Citation:
c'est quoi la différence de ta premiere méthode avec la mienne
$test ne devrait pas exister pour awk (donc je n'avais pas testé), mais effectivement ça fonctionne. bizarre...
Code :
1
2
echo 65 | awk '{printf("%c\n",$peuImporte)}'
A
encore plus bizarre
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2011, 10h43   #6
Expert Confirmé
 
Inscription : janvier 2011
Messages : 970
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : janvier 2011
Messages : 970
Points : 2 871
Points : 2 871
Salut,
Citation:
Envoyé par N_BaH Voir le message
Bonjour,


$test ne devrait pas exister pour awk (donc je n'avais pas testé), mais effectivement ça fonctionne. bizarre...
Code :
1
2
echo 65 | awk '{printf("%c\n",$peuImporte)}'
A
encore plus bizarre
La variable n'existe pas certes, mais l'echo lui existe et il l'affiche par défaut ($0), enfin c'est ce que j'en conclue
__________________
$ man woman
Il n'y a pas de page de manuel pour woman.
zipe31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2011, 11h50   #7
Membre régulier
 
Inscription : octobre 2006
Messages : 233
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : octobre 2006
Messages : 233
Points : 94
Points : 94
Par défaut Suite

T'as complétement raison pour awk!
Le pire est que j'avais déjà utilisé awk une fois et que j'avais oublié qu'il fallait appeler les champs (séparés par un espace) par $0 (ligne entière), $1 (field 1)...etc.

Je vais corriger ça dans le script, ça sera plus sérieux!

Merci beaucoup pour vos réponses....
kuja2053 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h02.


 
 
 
 
Partenaires

Hébergement Web