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 POSIX Discussion :

[awk] Fonction printf et gestion des accents


Sujet :

Shell et commandes POSIX

  1. #21
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2013
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2013
    Messages : 25
    Points : 10
    Points
    10
    Par défaut
    Unix Solaris

  2. #22
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 882
    Points
    7 882
    Par défaut
    Ok, ça aurait été une bonne idée de le dire tout de suite.

    Tu n'es pas dans le bon forum car Solaris n'est pas Linux et ses commandes natives ne sont pas GNU ...
    ɹǝsn *sıɹɐlos*

  3. #23
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2013
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2013
    Messages : 25
    Points : 10
    Points
    10
    Par défaut
    Ah ok ! Je ne savais pas, j'y penserai la prochaine fois !

  4. #24
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 276
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 276
    Points : 12 717
    Points
    12 717
    Par défaut
    Exact, c'est bien $F[0], je me suis plantouiller dans le copier/coller...
    Mais bon, a priori, cela ne résoud pas ton problème.
    Pourrais-tu nous fournir le résultat de la commande suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    file - < <(echo -e "$lineControleEnveloppeCalendrier")
    EDIT: Pas très utile en fait, si derrière c'est solaris
    Cordialement.

  5. #25
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 882
    Points
    7 882
    Par défaut
    Citation Envoyé par Gothan44 Voir le message
    Ah ok ! Je ne savais pas, j'y penserai la prochaine fois !
    Pourquoi pas cette fois ci ? Tu peux demander à un modérateur de déplacer cette discussion dans l'un des forums appropriés:

    http://www.developpez.net/forums/f88.../unix/solaris/ ou http://www.developpez.net/forums/f17...mmandes-posix/

    Sinon, quelle est la version de Solaris utilisée -> cat /etc/release ?
    ɹǝsn *sıɹɐlos*

  6. #26
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2013
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2013
    Messages : 25
    Points : 10
    Points
    10
    Par défaut
    Disedorgue, ta commande me renvoie une erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    -:            cannot open: No such file or directory
    En faisant la commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    file <(echo -e "$lineControleEnveloppeCalendrier")
    j'obtiens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /dev/fd/63:           character special (346/63)

  7. #27
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2013
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2013
    Messages : 25
    Points : 10
    Points
    10
    Par défaut
    @jlliagre : la version
    Solaris 10 10/09 s10s_u8wos_08a SPARC
    Copyright 2009 Sun Microsystems, Inc. All Rights Reserved.
    Use is subject to license terms.
    Assembled 16 September 2009

    Oui je vais faire la demande pour déplacer la conversation

  8. #28
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 882
    Points
    7 882
    Par défaut
    La conversion marche pour moi sur Solaris 10:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $ cat /etc/release
                        Oracle Solaris 10 8/11 s10x_u10wos_17b X86
      Copyright (c) 1983, 2011, Oracle and/or its affiliates. All rights reserved.
                                Assembled 23 August 2011
    $ a="ééèè"
    $ printf "%s\n" $a | od -c      
    0000000 303 251 303 251 303 250 303 250  \n
    0000011
    $ printf "%s\n" $a | iconv -f UTF8 -t 8859-1 | od -c
    0000000 351 351 350 350  \n
    0000005
    $ printf "%s\n" $a | iconv -f UTF-8 -t 8859-1 | iconv -f 8859-1 -t UTF-8 | od -c
    0000000 303 251 303 251 303 250 303 250  \n
    0000011
    ɹǝsn *sıɹɐlos*

  9. #29
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2013
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2013
    Messages : 25
    Points : 10
    Points
    10
    Par défaut
    Bonjour jlliagre,

    J'ai voulu essayer ta commande pour comparer, mais je n'arrive même pas à taper d'accent dans la console , pour information je me connecte via putty

  10. #30
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 276
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 276
    Points : 12 717
    Points
    12 717
    Par défaut
    En reprenant l'exemple de jlliagre, remplace la ligne:
    par (si en bash): <== a préférer si tu veux voir les caractères accentué au lieu de caractère étrange
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ a=$(echo -e "\303\251\303\251\303\250\303\250")
    par (si en ksh):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    a=$(echo "\0303\0251\0303\0251\0303\0250\0303\0250")
    EDIT:
    Soit dit en passant, chez moi, sur un " Solaris 10 5/09 s10s_u7wos_08 SPARC", la commande de jlliagre fonctionne ainsi que:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $ echo -e "t\303\251te\ntete" | LC_CTYPE="fr_FR.UTF-8" awk '{printf("%10s\n",$1)}'
          téte
          tete
    ou avec nawk:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo -e "t\303\251te\ntete" | LC_CTYPE="fr_FR.UTF-8" nawk '{printf("%10s\n",$1)}'
          téte
          tete
    Cordialement.

  11. #31
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 882
    Points
    7 882
    Par défaut
    Citation Envoyé par disedorgue Voir le message
    En reprenant l'exemple de jlliagre, remplace la ligne:
    par (si en bash): <== a préférer si tu veux voir les caractères accentué au lieu de caractère étrange
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ a=$(echo -e "\303\251\303\251\303\250\303\250")
    par (si en ksh):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    a=$(echo "\0303\0251\0303\0251\0303\0250\0303\0250")
    ou plus simple car portable et indépendant du shell:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    a=$(printf "\303\251\303\251\303\250\303\250")
    ɹǝsn *sıɹɐlos*

  12. #32
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 882
    Points
    7 882
    Par défaut
    Citation Envoyé par Gothan44 Voir le message
    mais je n'arrive même pas à taper d'accent dans la console , pour information je me connecte via putty
    Est-ce que putty est configuré en UTF-8 ? :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Change settings -> Window -> Translation -> Remote character set: UTF-8
    ɹǝsn *sıɹɐlos*

  13. #33
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 276
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 276
    Points : 12 717
    Points
    12 717
    Par défaut
    J'ai le même problème depuis mon putty qui est bien en UTF8, j'arrive à copier/coller mais pas à les taper.
    En bash, la touche reste inactive, en ksh, j'ai une traduction du caractère en 2 caractère ( ex: "é => C)" "è => C(" )

    Sinon, j'ai bien une solution avec nawk, mais je préfère voir s'il peut s'en sortir avec ta solution, qui serait plus propre que mon workaround.
    Cordialement.

  14. #34
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 882
    Points
    7 882
    Par défaut
    Vous semblez être tous les deux en locale C. La locale C (= POSIX), c'est de l'ASCII sur 7 bit, sans accents donc. Pas la meilleure approche pour travailler avec des caractères accentués.

    Que disent: ?
    ɹǝsn *sıɹɐlos*

  15. #35
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 276
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 276
    Points : 12 717
    Points
    12 717
    Par défaut
    Pour ma part,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $ locale
    LANG=fr_FR.UTF-8
    LC_CTYPE="fr_FR.UTF-8"
    LC_NUMERIC="fr_FR.UTF-8"
    LC_TIME="fr_FR.UTF-8"
    LC_COLLATE="fr_FR.UTF-8"
    LC_MONETARY="fr_FR.UTF-8"
    LC_MESSAGES="fr_FR.UTF-8"
    LC_ALL=
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    $ stty -a
    speed 38400 baud;
    rangées = 60 ; colonnes = 157 ; pixels_y = 0 ; pixels_x = 0 ;
    csdata ?
    eucw 1:0:0:0, scrw 1:0:0:0
    intr = ^c; quit = ^\; erase = ^h; kill = ^u;
    eof = ^d; eol = <undef>; eol2 = <undef>; swtch = <undef>;
    start = ^q; stop = ^s; susp = ^z; dsusp = ^y;
    rprnt = ^r; flush = ^o; werase = ^w; lnext = ^v;
    -parenb -parodd cs8 -cstopb hupcl cread -clocal -loblk crtscts -crtsxoff -parext
    -ignbrk brkint -ignpar -parmrk -inpck istrip -inlcr -igncr icrnl -iuclc
    ixon -ixany ixoff imaxbel
    isig icanon -xcase echo echoe echok -echonl -noflsh
    -tostop echoctl -echoprt echoke -defecho -flusho -pendin iexten
    opost -olcuc onlcr -ocrnl -onocr -onlret -ofill -ofdel tab3
    Si tu connais l'option coté control terminal qui m'active ça, je suis preneur...
    Cordialement.

  16. #36
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 882
    Points
    7 882
    Par défaut
    Au moins celle là:

    ɹǝsn *sıɹɐlos*

  17. #37
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 276
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 276
    Points : 12 717
    Points
    12 717
    Par défaut
    Bon, j'ai trouvé l'astuce pour activé les caractères accentués sur le solaris depuis putty (la recette est à peu près ceci):
    1) putty en mode UTF8
    2) On positionne la locale comme il faut, par exemple en fr_FR.UTF-8:
    3) on réinitialise le stty:
    4) On fait un exec du shell que l'on utilise...
    Par exemple:
    ou
    Cordialement.

  18. #38
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 276
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 276
    Points : 12 717
    Points
    12 717
    Par défaut
    Citation Envoyé par jlliagre Voir le message
    Au moins celle là:

    Cela fonctionne aussi avec cette option, mais en fait, c'est juste une histoire de locale à positionner et à relancer son shell avec cette locale pour la prise en compte...
    Cordialement.

  19. #39
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2013
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2013
    Messages : 25
    Points : 10
    Points
    10
    Par défaut
    Bonjour disedorgue, bonjour jlliagre,

    @jlliagre : mon putty est paramétré en UTF-8 mais cela ne change rien, j'obtiens les mêmes résultats que disedorgue (en bash).
    Resultat de la commande 'locale'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    LANG=
    LC_CTYPE="C"
    LC_NUMERIC="C"
    LC_TIME="C"
    LC_COLLATE="C"
    LC_MONETARY="C"
    LC_MESSAGES="C"
    LC_ALL=
    Resultat de la commande 'stty -a'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    speed 38400 baud; 
    rows = 24; columns = 80; ypixels = 0; xpixels = 0;
    csdata ?
    eucw 1:0:0:0, scrw 1:0:0:0
    intr = ^c; quit = ^\; erase = ^h; kill = ^u;
    eof = ^d; eol = <undef>; eol2 = <undef>; swtch = <undef>;
    start = ^q; stop = ^s; susp = ^z; dsusp = ^y;
    rprnt = ^r; flush = ^o; werase = ^w; lnext = ^v;
    -parenb -parodd cs8 -cstopb -hupcl cread -clocal -loblk crtscts -crtsxoff -parext 
    -ignbrk brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl -iuclc 
    ixon -ixany -ixoff imaxbel 
    isig icanon -xcase echo echoe echok -echonl -noflsh 
    -tostop echoctl -echoprt echoke -defecho -flusho -pendin iexten 
    opost -olcuc onlcr -ocrnl -onocr -onlret -ofill -ofdel tab3
    @disedorgue : putty en est mode UTF-8, j'ai placé la variable lang en UTF-8 (et vérifié avec un echo qu'elle etait bien en UTF-8), j'ai réinitialisé le stty et fait un exec pour le bash. Je ne pense pas que cela marche, quand je tape 'é' cela affiche 'C)' sur la console

  20. #40
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 882
    Points
    7 882
    Par défaut
    Comme déjà indiqué, la locale C est une locale 7 bit, conçue uniquement pour afficher de l'anglais. Il faut que tu passes en UTF-8 pour pouvoir traiter tes caractères accentués correctement. Voici une méthode pour le faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LC_ALL=fr_FR.UTF-8 exec $SHELL
    ɹǝsn *sıɹɐlos*

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. Gestion des accents avec la fonction UploadFile
    Par doozolab dans le forum VB.NET
    Réponses: 2
    Dernier message: 18/10/2013, 12h34
  2. [PHP 5.2] Fonction preg_match et gestion des accents
    Par sheira dans le forum Langage
    Réponses: 6
    Dernier message: 10/08/2010, 16h34
  3. [EZPDF] gestion des accents
    Par cyreel dans le forum Bibliothèques et frameworks
    Réponses: 13
    Dernier message: 26/06/2007, 18h59
  4. [Regex] gestion des accents dans un mot
    Par joseph_p dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 10/05/2006, 09h04
  5. [Conception] Gestion des accents dans une base de données
    Par MiJack dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 07/07/2005, 11h41

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