IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Affichage caractère ASCII dans script Shell


Sujet :

Shell et commandes GNU

  1. #1
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Octobre 2006
    Messages : 233
    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...

  2. #2
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Octobre 2006
    Messages : 233
    Par défaut Suite
    J'ai trouvé.

    Pour les intéressés:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    test=65
    echo $test | awk '{ printf("%c",$test )  }'

  3. #3
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 636
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 636
    Par défaut
    Bonjour,

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

    comme ça, oui :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  4. #4
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Octobre 2006
    Messages : 233
    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

  5. #5
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 636
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 636
    Par défaut
    Bonjour,

    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo 65 | awk '{printf("%c\n",$peuImporte)}'
    A
    encore plus bizarre
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  7. #7
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Octobre 2006
    Messages : 233
    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....

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Caractères ASCII dans le script
    Par Rador8 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 29/07/2014, 20h04
  2. affichage caractères chinois dans une liste
    Par turpinx dans le forum Langage
    Réponses: 1
    Dernier message: 09/09/2006, 19h13
  3. Passwd dans script shell
    Par Caroux dans le forum Linux
    Réponses: 4
    Dernier message: 30/05/2006, 12h47
  4. Affichage caractéres spéciaux dans une alert.
    Par nebule dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 05/05/2006, 13h51
  5. [xm] pb affichage caractère e dans l'o ..
    Par peppena dans le forum XML/XSL et SOAP
    Réponses: 21
    Dernier message: 25/02/2004, 10h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo