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. #1
    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 [awk] Fonction printf et gestion des accents
    Bonjour,

    J'ai un script contenant cette commande (shell bash) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NomTraitement=$(echo -e "$lineControleEnveloppeCalendrier" | sed 's/[éèê]/e/g' | awk -F";" '{printf("%-70s",$1)}')
    La commande fonctionne parfaitement et ma variable 'NomTraitement' s'affiche bien sur 70 colonnes. Je souhaite cependant ne pas remplacer les accents par des 'e' mais les garder, est-ce possible ?

    Tout en respectant le fait que ma variable doit s'afficher sur 70 colonnes

    Merci !

  2. #2
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Points : 19 452
    Points
    19 452
    Par défaut
    Bonsoir.

    Comprends-tu le sens de ta commande pour commencer ?

    Parce que ceci : sed 's/[éèê]/e/g' remplace justement les "é", "è" et "ê" par des "e".

    As-tu essayé ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NomTraitement=$(echo -e "$lineControleEnveloppeCalendrier"|awk -F";" '{printf("%-70s",$1)}')
    ?

    Cordialement,
    Idriss

  3. #3
    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.Idriss Le problème ne vient pas du maintient des accents mais du fait que printf compte les octets, pas les caractères. Le résultat de la commande que tu suggère contiendra moins de 70 colonnes s'il y a des accents et que l'on est en UTF-8.

    @Gothan44 Essaie ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NomTraitement=$(printf "%s%70s" "$(echo "$lineControleEnveloppeCalendrier"|iconv -f utf8 -t iso-8859-1)" " "| cut -c 1-70 |iconv -t utf8 -f iso-8859-1)
    ɹǝsn *sıɹɐlos*

  4. #4
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Points : 19 452
    Points
    19 452
    Par défaut
    Ah pardon, oui j'avais pas bien cerné le problème

  5. #5
    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,

    Merci pour vos réponses, et oui je m'étais peut être mal exprimé .

    @jlliagre : J'ai essayé ta commande et voici le résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    iconv: conversion error
    Conversion error detected while processing stdin
    Merci de votre aide.

  6. #6
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 266
    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 266
    Points : 12 681
    Points
    12 681
    Par défaut
    Bonjour,
    Pour que le printf puisse prendre en compte les caractère accentuer, le réglage de la locale semble suffisant.
    en locale "C" , je perds bien des colonnes, en locale "fr_FR.UTF-8", je ne perds pas de colonne.
    Bon, mes tests son sous cygwin.
    Cordialement.

  7. #7
    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,

    Est-il possible de changer cette variable locale dans un script, sans l'accès root ?
    Actuellement je suis en locale "C".

    Merci.

  8. #8
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 515
    Points : 2 505
    Points
    2 505
    Par défaut
    Oui bien sûr, tu peux changer la variable sans être root. Quand tu changes une variable d'environnement, elle n'est changée que dans le shell courant et éventuellement (si tu l'exportes avec "export") dans les process fils.

  9. #9
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 238
    Points : 13 443
    Points
    13 443
    Par défaut
    Bonjour

    Ma locale est fr_FR.UTF-8 et printf me sucre un caractère pour tête, téte, tète, par rapport à tete.
    (Debian + Bash)
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  10. #10
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 266
    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 266
    Points : 12 681
    Points
    12 681
    Par défaut
    Voici un exemple:
    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
    16
    17
    $ 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=
    $ echo -e "téte\ntete" | LC_CTYPE=C awk '{printf("%10s\n",$1)}'| tee /dev/tty | wc -c
         téte
          tete
    22
    $ echo -e "téte\ntete" | LC_CTYPE="fr_FR.UTF-8" awk '{printf("%10s\n",$1)}'| tee /dev/tty | wc -c
          téte
          tete
    23
    ATTENTION: LANG peut aussi interférer s'il est défini en "C". Dans le principe, on pourrait définir LC_ALL en "fr_FR.UTF-8" mais ceci dépends fortement du besoin car cela modifie d'autres chose tel que l'affichage des nombres (le séparateur de millier, le point peut devenir une virgule), le tri,...
    Cordialement.

  11. #11
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 700
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 700
    Points : 15 044
    Points
    15 044
    Par défaut
    Citation Envoyé par disedorgue Voir le message
    Voici un exemple:
    Copié-collé tes 3 lignes -->
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    $ locale
    LANG=fr_FR.UTF-8
    LANGUAGE=
    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_PAPER="fr_FR.UTF-8"
    LC_NAME="fr_FR.UTF-8"
    LC_ADDRESS="fr_FR.UTF-8"
    LC_TELEPHONE="fr_FR.UTF-8"
    LC_MEASUREMENT="fr_FR.UTF-8"
    LC_IDENTIFICATION="fr_FR.UTF-8"
    LC_ALL=
    $ echo -e "téte\ntete" | LC_CTYPE=C awk '{printf("%10s\n",$1)}'| tee /dev/tty | wc -c
         téte
          tete
    22
    $ echo -e "téte\ntete" | LC_CTYPE="fr_FR.UTF-8" awk '{printf("%10s\n",$1)}'| tee /dev/tty | wc -c
         téte
          tete
    22
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  12. #12
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 238
    Points : 13 443
    Points
    13 443
    Par défaut
    Merci disedorgue.
    Mort de rire. La solution de disedorgue marche chez moi et j'ai la même locale que Jipété.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  13. #13
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 266
    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 266
    Points : 12 681
    Points
    12 681
    Par défaut
    J'ai un cas où cela ne fonctionne pas, c'est quand je spécifie l'option -b à la commande awk.
    Sinon, tu peux faire aussi un test pour voir si ta locale change bien de charmap:
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    $ LC_CTYPE=C locale -k LC_CTYPE
    ctype-class-names="upper";"lower";"alpha";"digit";"xdigit";"space";"print";"graph";"blank";"cntrl";"punct";"alnum"
    ctype-map-names="toupper";"tolower"
    ctype-outdigit0_mb="0"
    ctype-outdigit1_mb="1"
    ctype-outdigit2_mb="2"
    ctype-outdigit3_mb="3"
    ctype-outdigit4_mb="4"
    ctype-outdigit5_mb="5"
    ctype-outdigit6_mb="6"
    ctype-outdigit7_mb="7"
    ctype-outdigit8_mb="8"
    ctype-outdigit9_mb="9"
    ctype-outdigit0_wc=48
    ctype-outdigit1_wc=49
    ctype-outdigit2_wc=50
    ctype-outdigit3_wc=51
    ctype-outdigit4_wc=52
    ctype-outdigit5_wc=53
    ctype-outdigit6_wc=54
    ctype-outdigit7_wc=55
    ctype-outdigit8_wc=56
    ctype-outdigit9_wc=57
    charmap="ANSI_X3.4-1968"
    ctype-mb-cur-max=1
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    $ LC_CTYPE="fr_FR.UTF-8" locale -k LC_CTYPE
    ctype-class-names="upper";"lower";"alpha";"digit";"xdigit";"space";"print";"graph";"blank";"cntrl";"punct";"alnum"
    ctype-map-names="toupper";"tolower"
    ctype-outdigit0_mb="0"
    ctype-outdigit1_mb="1"
    ctype-outdigit2_mb="2"
    ctype-outdigit3_mb="3"
    ctype-outdigit4_mb="4"
    ctype-outdigit5_mb="5"
    ctype-outdigit6_mb="6"
    ctype-outdigit7_mb="7"
    ctype-outdigit8_mb="8"
    ctype-outdigit9_mb="9"
    ctype-outdigit0_wc=48
    ctype-outdigit1_wc=49
    ctype-outdigit2_wc=50
    ctype-outdigit3_wc=51
    ctype-outdigit4_wc=52
    ctype-outdigit5_wc=53
    ctype-outdigit6_wc=54
    ctype-outdigit7_wc=55
    ctype-outdigit8_wc=56
    ctype-outdigit9_wc=57
    charmap="UTF-8"
    ctype-mb-cur-max=6
    Et comme expliqué au départ, je suis sous cygwin et je ne peux pas actuellement tester sur un autre système...
    Cordialement.

  14. #14
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 700
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 700
    Points : 15 044
    Points
    15 044
    Par défaut
    Citation Envoyé par disedorgue Voir le message
    J'ai un cas où cela ne fonctionne pas, c'est quand je spécifie l'option -b à la commande awk.
    Sinon, tu peux faire aussi un test pour voir si ta locale change bien de charmap:
    tu : Flodelarab ou moi ?

    En ce qui me concerne, j'ai fait ton nouveau test, juste pour faire avancer le schmilblik car je commence à être largué, d'autant plus qu'il me semblait que les caractères accentués étaient plus longs que les basiques ASCII...

    J'ai noté quelques différences, mais ça ne me parle pas (et j'ai viré plein de lignes inutiles et identiques aux tiennes, histoire que ça soit plus lisible) :
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    $ LC_CTYPE=C locale -k LC_CTYPE
    ctype-class-names="upper";"lower";"alpha";"digit";"xdigit";"space";"print";"graph";"blank";"cntrl";"punct";"alnum"
    ctype-map-names="toupper";"tolower"
    ctype-width=7
    ctype-mb-cur-max=1
    charmap="ANSI_X3.4-1968"
    ctype-class-offset=72
    ctype-map-offset=84
    ctype-indigits_mb-len=1
    ...
    ctype-indigits_wc-len=1
    ...
    ctype-translit-tab-size=1354
    ctype-translit-default-missing-len=1
    ctype-translit-ignore-len=0
    ctype-translit-ignore=""
    map-to-nonascii=0
    
    $ LC_CTYPE="fr_FR.UTF8" locale -k LC_CTYPE
    ctype-class-names="upper";"lower";"alpha";"digit";"xdigit";"space";"print";"graph";"blank";"cntrl";"punct";"alnum";"combining";"combining_level3"
    ctype-map-names="toupper";"tolower";"totitle"
    ctype-width=16
    ctype-mb-cur-max=6
    charmap="UTF-8"
    ctype-class-offset=72
    ctype-map-offset=86
    ctype-indigits_mb-len=1
    ...
    ctype-indigits_wc-len=1
    ...
    ctype-translit-tab-size=4554
    ctype-translit-default-missing-len=1
    ctype-translit-ignore-len=0
    ctype-translit-ignore=""
    map-to-nonascii=0
    Bon aprème,
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  15. #15
    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
    @jlliagre : J'ai essayé ta commande et voici le résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    iconv: conversion error
    Conversion error detected while processing stdin
    Qu'affiche:?
    ɹǝsn *sıɹɐlos*

  16. #16
    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,

    Je me retrouve avec le même résultat que jipété

    @jlliagre : voici ce que me renvoie 'iconv -l' :

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    The following are all supported code set names.  All combinations
    of those names are not necessarily available for the pair of the
    fromcode-tocode.  Some of those code set names have aliases, which
    are case-insensitive and described in parentheses following the
    canonical name:
     
        5601,
        646 (ASCII, US-ASCII, US_ASCII, USASCII),
        646da,
        646de,
        646en,
        646es,
        646fr,
        646it,
        646sv,
        8859,
        8859-1 (ISO8859-1, ISO-8859-1, ISO8859_1, ISO_8859_1),
        8859-10 (ISO8859-10, ISO8859_10, ISO-8859-10, ISO_8859_10),
        8859-13 (ISO8859-13, ISO8859_13, ISO-8859-13, ISO_8859_13),
        8859-14 (ISO8859-14, ISO8859_14, ISO-8859-14, ISO_8859_14),
        8859-15 (ISO8859-15, ISO-8859-15, ISO8859_15, ISO_8859_15),
        8859-16 (ISO8859-16, ISO8859_16, ISO-8859-16, ISO_8859_16),
        8859-2 (ISO8859-2, ISO8859_2, ISO-8859-2, ISO_8859_2),
        8859-3 (ISO8859-3, ISO8859_3, ISO-8859-3, ISO_8859_3),
        8859-4 (ISO8859-4, ISO8859_4, ISO-8859-4, ISO_8859_4),
        8859-5 (ISO8859-5, ISO8859_5, ISO-8859-5, ISO_8859_5),
        8859-6 (ISO8859-6, ISO8859_6, ISO-8859-6, ISO_8859_6),
        8859-7 (ISO8859-7, ISO8859_7, ISO-8859-7, ISO_8859_7),
        8859-8 (ISO8859-8, ISO8859_8, ISO-8859-8, ISO_8859_8),
        8859-9 (ISO8859-9, ISO8859_9, ISO-8859-9, ISO_8859_9),
        ACE (ACE),
        ACE-ALLOW-UNASSIGNED (ACE-ALLOW-UNASSIGNED, ACE_ALLOW_UNASSIGNED, ACEALLOWUNASSIGNED),
        ANSI-1250,
        ANSI-1251,
        ANSI-1252,
        ANSI-1253,
        ANSI-1254,
        ANSI-1255,
        ANSI-1256,
        ANSI-1257,
        ANSI-1258,
        BIG5,
        BIG5P,
        Big5-HKSCS,
        CP1250 (CP1250, CP-1250, CP_1250),
        CP1251 (CP1251, CP-1251, CP_1251, WINDOWS-1251),
        CP1252 (CP1252, CP-1252, CP_1252),
        CP1253 (CP1253, CP-1253, CP_1253),
        CP1254 (CP1254, CP-1254, CP_1254),
        CP1255 (CP1255, CP-1255, CP_1255),
        CP1256 (CP1256, CP-1256, CP_1256),
        CP1257 (CP1257, CP-1257, CP_1257),
        CP1258 (CP1258, CP-1258, CP_1258),
        CP437 (CP437, CP-437, CP_437),
        CP737 (CP737, CP-737, CP_737),
        CP775 (CP775, CP-775, CP_775),
        CP850 (CP850, CP-850, CP_850),
        CP852 (CP852, CP-852, CP_852),
        CP855 (CP855, CP-855, CP_855),
        CP857 (CP857, CP-857, CP_857),
        CP860 (CP860, CP-860, CP_860),
        CP861 (CP861, CP-861, CP_861),
        CP862 (CP862, CP-862, CP_862),
        CP863 (CP863, CP-863, CP_863),
        CP864 (CP864, CP-864, CP_864),
        CP865 (CP865, CP-865, CP_865),
        CP866 (CP866, CP-866, CP_866),
        CP869 (CP869, CP-869, CP_869),
        CP874 (CP874, CP-874, CP_874),
        EUC-JIS-2004,
        EUC-KR (EUC-KR, EUC_KR),
        FujitsuJEF-ascii-code,
        FujitsuJEF-ascii-face,
        FujitsuJEF-kana-code,
        FujitsuJEF-kana-face,
        GB18030,
        GBK,
        HZ-GB-2312,
        HitachiKEIS83,
        HitachiKEIS90,
        IBM-037,
        IBM-1025,
        IBM-1026,
        IBM-1046,
        IBM-1112,
        IBM-1122,
        IBM-1140,
        IBM-1141,
        IBM-1142,
        IBM-1143,
        IBM-1144,
        IBM-1145,
        IBM-1146,
        IBM-1147,
        IBM-1148,
        IBM-1149,
        IBM-273,
        IBM-277,
        IBM-278,
        IBM-280,
        IBM-284,
        IBM-285,
        IBM-297,
        IBM-420,
        IBM-424,
        IBM-500,
        IBM-838,
        IBM-850,
        IBM-852,
        IBM-855,
        IBM-856,
        IBM-857,
        IBM-862,
        IBM-864,
        IBM-866,
        IBM-869,
        IBM-870,
        IBM-871,
        IBM-874,
        IBM-875,
        IBM-880,
        IBM-921,
        IBM-922,
        IBM-CP838,
        IBM-CP874,
        IBM850,
        IBM870,
        ISO-2022-JP (ISO-2022-JP, ISO_2022_JP, ISO2022JP, ISO-2022JP, ISO_2022JP, ISO2022-JP, ISO2022_JP),
        ISO-2022-JP-2004,
        ISO-2022-JP.RFC1468,
        ISO-2022-KR,
        ISO-8859-16,
        ISO-8859-2,
        ISO646,
        ISO8859-1,
        ISO8859-11,
        ISO8859-15,
        ISO8859-2,
        ISO8859-4,
        ISO8859-5,
        ISO8859-6,
        ISO8859-7,
        ISO8859-8,
        ISO8859-9,
        ISO8869-16,
        KOI8-R (KOI8-R, KOI8_R, KOI8R),
        KOI8-U (KOI8-U, KOI8_U, KOI8U),
        KSC5601,
        KSX1001,
        NECJIPS,
        PCK (PCK, SJIS, Shift_JIS, SHIFT-JIS, ShiftJIS),
        PTCP154 (PTCP154),
        RK1048,
        SJIS,
        Shift_JIS-2004,
        TIS620.2533,
        UCS-2 (UCS-2, UCS_2, UCS2),
        UCS-2BE (UCS-2BE, UCS_2BE, UCS2BE),
        UCS-2LE (UCS-2LE, UCS_2LE, UCS2LE),
        UCS-4 (UCS-4, UCS_4, UCS4),
        UCS-4BE (UCS-4BE, UCS_4BE, UCS4BE),
        UCS-4LE (UCS-4LE, UCS_4LE, UCS4LE),
        UTF-16 (UTF-16, UTF16, UTF_16),
        UTF-16BE (UTF-16BE, UTF16BE, UTF_16BE),
        UTF-16LE (UTF-16LE, UTF16LE, UTF_16LE),
        UTF-32 (UTF-32, UTF32, UTF_32),
        UTF-32BE (UTF-32BE, UTF32BE, UTF_32BE),
        UTF-32LE (UTF-32LE, UTF32LE, UTF_32LE),
        UTF-7,
        UTF-8 (UTF-8, UTF8, UTF_8),
        UTF-8-Java,
        UTF-8-ms932 (UTF-8-CP932, UTF8-CP932, UTF-8CP932, UTF_8_CP932, UTF8_CP932, UTF_8CP932, UTF8CP932, UTF-8-MS932, UTF8-MS932, UTF-8MS932, UTF_8_MS932, UTF8_MS932, UTF_8MS932, UTF8MS932, UTF-8-PC932, UTF8-PC932, UTF-8PC932, UTF_8_PC932, UTF8_PC932, UTF_8PC932, UTF8PC932),
        UTF-EBCDIC (UTF-EBCDIC, UTF_EBCDIC, UTFEBCDIC),
        UnifiedHangul,
        alt,
        ansi-1250,
        ansi-1251,
        ansi-1252,
        ansi-1253,
        ansi-1254,
        ansi-1255,
        ansi-1256,
        ansi-1257,
        ansi-1258,
        cns11643,
        dhn,
        dos2,
        eucJP (eucJP, EUC-JP, EUC_JP),
        eucJP-ms (EUC-JP-MS),
        eucTH (ISO8859-11, ISO8859_11, ISO-8859-11, ISO_8859_11, TIS-620, TIS_620, TIS620, TIS620.2533, TIS620:2533, TIS620-2533, TIS620_2533, eucTH, EUC-TH, EUC_TH),
        gb2312,
        ibm-850,
        ibm-870,
        ibm5026 (IBM-5026, IBM_5026, IBM5026),
        ibm5035 (IBM-5035, IBM_5035, IBM5035),
        ibm850,
        ibm870,
        ibm930 (IBM-930, IBM_930, IBM930),
        ibm931 (IBM-931, IBM_931, IBM931),
        ibm939 (IBM-939, IBM_939, IBM939),
        iscii91 (ISCII, ISCII91),
        iso-8859-16,
        iso-8859-2,
        iso2,
        iso2022,
        iso5,
        iso8859-11,
        iso8859-16,
        iso8859-2,
        ko_KR-UTF-8,
        ko_KR-cp933 (ko_KR.cp933, IBM-933, IBM_933, IBM933, CP933),
        ko_KR-cp949 (ko_KR.cp949, UnifiedHangul, UHC, CP949),
        ko_KR-euc (Wansung, eucKR, 5601, KSC5601, ko_KR.euc),
        ko_KR-iso2022-7 (ISO-2022-KR, ISO_2022_KR, ISO2022KR, ISO-2022KR, ISO_2022KR, ISO2022-KR, ISO2022_KR, ko_KR.iso2022-7),
        ko_KR-johap (ko_KR.johap),
        ko_KR-johap92 (ko_KR.johap92),
        ko_KR.EUC,
        ko_KR.cp933,
        ko_KR.cp949,
        ko_KR.euc,
        ko_KR.iso2022-7,
        ko_KR.johap,
        ko_KR.johap92 (JOHAB, JOHAP),
        koi8,
        mac,
        maz,
        ms932 (CP932, MS932, PC932),
        tis620.2533,
        utf-8,
        win2,
        win5,
        zh_CN-cp935 (IBM-935, IBM_935, IBM935, CP935),
        zh_CN.euc (GB2312, GB-2312, GB_2312, EUC-CN, EUC_CN, eucCN),
        zh_CN.gb18030,
        zh_CN.gbk (GB18030, GB-18030, GB_18030, GBK, zh_CN.gb18030),
        zh_CN.iso2022-7,
        zh_CN.iso2022-CN (zh_CN.iso2022-7),
        zh_HK-big5hk,
        zh_HK.big5hk,
        zh_HK.hkscs (Big5HKSCS, Big-5HKSCS, Big_5HKSCS, Big5-HKSCS, Big5_HKSCS, Big-5-HKSCS, Big_5_HKSCS, Big5HK, Big-5HK, Big_5HK, Big-5-HK, Big_5_HK, zh_HK.big5hk, zh_HK-big5hk),
        zh_TW-big5 (BIG5, BIG-5, BIG_5, zh_TW.big5),
        zh_TW-big5p (BIG5P, BIG5Plus, BIG5-Plus, BIG5_Plus, BIG-5-Plus, BIG_5_Plus, BIG-5Plus, BIG_5Plus, zh_TW.big5p),
        zh_TW-cp937 (zh_TW.cp937, IBM-937, IBM_937, IBM937, CP937),
        zh_TW-euc (EUC-TW, EUC_TW, eucTW, CNS11643, CNS-11643, CNS_11643, zh_TW.euc),
        zh_TW-iso2022-7 (zh_TW.iso2022-7, zh_TW.iso2022-CN, zh_TW-iso2022-CN),
        zh_TW.big5,
        zh_TW.big5p,
        zh_TW.cp937,
        zh_TW.euc,
        zh_TW.iso2022-7

  17. #17
    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
    Essaie:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    printf "%s%70s" "$(echo "$lineControleEnveloppeCalendrier"|iconv -f UTF-8 -t 8859-1)" " "| cut -c 1-70 |iconv -t UTF-8 -f 8859-1)
    ɹǝsn *sıɹɐlos*

  18. #18
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 266
    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 266
    Points : 12 681
    Points
    12 681
    Par défaut
    Ou si tu peux remplacer awk par perl, tu peux essayer ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NomTraitement=$(echo -e "$lineControleEnveloppeCalendrier"|LC_CTYPE="fr_FR.UTF-8" perl -C -F';' -na -e 'chomp(@F);printf("%-70s",$F[1])')
    Cordialement.

  19. #19
    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 : avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NomTraitement=$(printf "%s%70s" "$(echo "$lineControleEnveloppeCalendrier"|iconv -f UTF-8 -t 8859-1)" " "| cut -c 1-70 |iconv -t UTF-8 -f 8859-1)
    --> Le champs s'affiche bien sur 70 colonnes, mais tous les accents sont supprimés, exemple : si le champs est 'clé' cela va afficher 'cl'

    @disedorgue : avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NomTraitement=$(echo -e "$lineControleEnveloppeCalendrier"|LC_CTYPE="fr_FR.UTF-8" perl -C -F';' -na -e 'chomp(@F);printf("%-70s",$F[1])')
    --> Le champs ne s'affiche pas sur 70 colonnes, je retrouve le problème du départ. Et du coup, j'ai remplacé $F[1] par $F[0], car à priori (je ne connais pas perl) le premier champs en perl doit être le 0 comparativement à awk qui doit commencer au 1.

    Du moins, merci pour votre aide

    Sinon je vais rester sur le code de départ et laisser les accents de côté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NomTraitement=$(echo -e "$lineControleEnveloppeCalendrier" | sed 's/[éèê]/e/g' | awk -F";" '{printf("%-70s",$1)}')

  20. #20
    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
    @jlliagre : avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NomTraitement=$(printf "%s%70s" "$(echo "$lineControleEnveloppeCalendrier"|iconv -f UTF-8 -t 8859-1)" " "| cut -c 1-70 |iconv -t UTF-8 -f 8859-1)
    --> Le champs s'affiche bien sur 70 colonnes, mais tous les accents sont supprimés, exemple : si le champs est 'clé' cela va afficher 'cl'
    Tu es sous quel OS ??
    ɹǝsn *sıɹɐlos*

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 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, 13h34
  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, 17h34
  3. [EZPDF] gestion des accents
    Par cyreel dans le forum Bibliothèques et frameworks
    Réponses: 13
    Dernier message: 26/06/2007, 19h59
  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, 10h04
  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, 12h41

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