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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    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
    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 : 34
    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
    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
    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)

  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 : 34
    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
    Par défaut
    Ah pardon, oui j'avais pas bien cerné le problème

  5. #5
    Membre averti
    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
    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 confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 352
    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 352
    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.

  7. #7
    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
    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:?

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

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