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 :

[awk] Sous-chaîne de longueur variable


Sujet :

Shell et commandes GNU

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 45
    Points : 38
    Points
    38
    Par défaut [awk] Sous-chaîne de longueur variable
    Bonjour,

    Je fais actuellement à mon travail des tâches de Scripting et je fais face à quelques petit problèmes.

    - 1) Quand on extrait une chaine avec un séparateur comme ici : FS= »| », peut-on extraire une sous-chaine de notre champ grâce à un autre séparateur. ?

    Car les chaines que j’extrais contiennent des accents et comme cela me pose problème j’aimerais pouvoir extraire la première partie de ma chaine qui a une largeur variable mais qui se finit toujours par un "-" .

    Exemple :
    Le champ extrait grâce à mon séparateur "|" me donne :

    Toto xcvb ezs – allée des tâches à Créteil 
    Titi – fait du vélo
    Tata 23pr – Remonté des données
    Et j’aimerais pouvoir en extraire une sous-chaîne à longueur variable :

    Toto xcvb ezs
    Titi
    Tata 23pr
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    for t in $Groupe4
    do
    cat /tmp/${FIC_TXT} | awk -v var=$t ' BEGIN{FS="|";} { if(var == $1) {NB_TRAIT ++;
                                                            if("Normal" == $10){NB_NORMAL ++;}
                                                            if("Avertissement" == $10){NB_WARNING ++;}
                                                            if("Erreur" == $10){NB_ERREUR ++;}
                                                            if("En cours"== $11){NB_ENCOURS ++;}
                                                     }}
                                               END {printf("<tr><td>%s</td><td> </td><td> </td><td> </td><td>%d</td><td>%d</td><td>%d</td><td>%d</td><td>%s</td><td></td>
    <td></td><td></td><td></td></tr>",var,NB_TRAIT,NB_NORMAL,NB_WARNING,NB_ERREUR,NB_ENCOURS)}'  >> ${LOCAL_DIR}/${FIC_HTML}
    done
    - 2) Quand on effectue le printf y a-t-il une manière de ne pas écrire les variables valant "0" ou peut-on les remplacer par des champs vides ?


    par avance merci pour toutes vos suggestions

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 587
    Points : 19 466
    Points
    19 466
    Par défaut
    Bonjour,

    1/ split().
    2/ un exemple avec print, adaptable à printf :

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 45
    Points : 38
    Points
    38
    Par défaut
    merci, c'est tout a fait ce qu'il me fallait

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

Discussions similaires

  1. Lecture par bouts de chaînes de longueur variable
    Par Chavadam dans le forum Débuter avec Java
    Réponses: 9
    Dernier message: 09/08/2013, 20h29
  2. Réponses: 4
    Dernier message: 15/12/2011, 16h59
  3. Tableau de chaînes de longueur variable
    Par alband85 dans le forum C#
    Réponses: 3
    Dernier message: 20/08/2007, 09h49
  4. Réponses: 1
    Dernier message: 30/04/2007, 15h33
  5. [String] Récupérer une sous -chaîne sans split
    Par Crazyblinkgirl dans le forum Langage
    Réponses: 3
    Dernier message: 19/07/2004, 14h45

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