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

Linux Discussion :

Modifier un programe .awk


Sujet :

Linux

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2003
    Messages
    166
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 166
    Points : 39
    Points
    39
    Par défaut Modifier un programe .awk
    Bonjour,

    j'ai un fichier qui contient :

    test_compress_b_ref.sh;testbref
    test_qualite_base_de_ref.sh;testbref
    accueil.sh;gdc_initenv
    accueil.sh;gdc_initenv
    accueil.sh;aigui
    accueil2.sh;m_accueil
    aco_chgficacticomm.sh;aco_comptage
    aco_chgficacticomm.sh;aco_ecritfic
    aco_comptage.sh;aco_creerfmt
    aco_comptage.sh;aco_creerfmt

    je lance ce petit programme pour recuperer le nombre de fois l'existance de la 2éme variable
    dans le fichier correspondant.

    quelqu'un à une autre idée pour modifier ce prog et le mettre sous la forme un fichier.sh

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    BEGIN{FS=";"} 
    { 
       printf("s;", $0); 
       system("grep '"$2"' "$1" | wc -l"); 
    } 
     
    et lancer en bath
     
    cat fich | awk -f .srcawk > fich2
    Merci

  2. #2
    Membre confirmé
    Avatar de bster
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    372
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2005
    Messages : 372
    Points : 497
    Points
    497
    Par défaut
    tout simplement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    #!/bin/sh
    cat $1 | awk {printf("s;", $0)} | grep "$2" | wc -l > $3
    exit $?
    le paramettre 3 étant le fichier résultat bien sur.

    ou à adapter mais inutile d'avoir 3 fichiers là où un seul suffit
    de plus si tu fais un script shell qui appelle un awk qui appelle le shell pour lancer le grep et le wc bonjour la perte de performance donc autant sortir ces instructions du awk.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Novembre 2003
    Messages
    166
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 166
    Points : 39
    Points
    39
    Par défaut modifier un programe .awk
    Merci pour ta réponse,
    mais elle m'affiche que le resultat de la 1er ligne: çàd 1

    Citation Envoyé par bster
    tout simplement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    #!/bin/sh
    cat $1 | awk 'BEGIN{FS=";"} {printf("s;", $0)}' | grep "$2" | wc -l > $3
    exit $?
    le paramettre 3 étant le fichier résultat bien sur.

    ou à adapter mais inutile d'avoir 3 fichiers là où un seul suffit
    de plus si tu fais un script shell qui appelle un awk qui appelle le shell pour lancer le grep et le wc bonjour la perte de performance donc autant sortir ces instructions du awk.

  4. #4
    Membre confirmé
    Avatar de bster
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    372
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2005
    Messages : 372
    Points : 497
    Points
    497
    Par défaut
    j'ai mentionné que c'est à adapté je vais pas te le faire quand même mais pour la structure c'est ça.

Discussions similaires

  1. Script AWK pour modifier un fichier
    Par leanima dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 13/04/2012, 13h49
  2. Réponses: 7
    Dernier message: 17/02/2012, 12h57
  3. Réponses: 4
    Dernier message: 19/07/2007, 10h05

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