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 :

Awk


Sujet :

Linux

  1. #1
    Futur Membre du Club
    Inscrit en
    Août 2005
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 2
    Points : 5
    Points
    5
    Par défaut Awk
    salut
    j'ai un fichier qui se compose des lignes et chaque lignes se compose de plusieurs expressions séparées par unou plusieurs espaces
    j'ai voulu utiluser awk pour analyser les expessions qui correspondent à $1,$2...$NF
    en faite je veux rassembler tous les $2 qui correspondent au meme $1 dans un meme fichier nommé l'expression contenue dans $1
    exp
    mami fougi 873
    sono baby 478
    mami gaga 78+
    alors je veux mettre fougi et gaga dans un meme fichier nommé mami
    et mettre baby dans un autre fichier nommé sono
    est ce que vous pouvaz m'aidez

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 372
    Points : 497
    Points
    497
    Par défaut
    moi je ferrais ça comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    >for i in  `awk {'print $1'} FICHIER | uniq` ; do cat FICHIER| grep ^$i | awk {'print $2"\n"'} >> $i ; done
    >ls
    FICHIER
    mami
    sono
    >cat sono
    baby
    >
    totalement inutile de faire des scripts pour une edition si simple
    Comité de lutte contre le langage SMS sur les forums
    Veuillez écrire dans un langage compréhensible par les humains, merci.

  3. #3
    Membre confirmé
    Avatar de argoet
    Inscrit en
    Mai 2002
    Messages
    582
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 582
    Points : 562
    Points
    562
    Par défaut
    Un truc du genre :
    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
    cat ok.sh
     
    # mami fougi 873 
    # sono baby 478 
    # mami gaga 78+ 
    # alors je veux mettre fougi et gaga dans un meme fichier nommé mami 
    # et mettre baby dans un autre fichier nommé sono 
    # est ce que vous pouvaz m'aidez
     
    echo "mami fougi 873 \nsono baby 478\nmami gaga 78+" > ok
     
    for i in `cat ok | awk '{printf("%s|%s\n", $1, $2)}'`
    do
            F=`echo $i | cut -d "|" -f 1`
            L=`echo $i | cut -d "|" -f 2`
     
         echo "$L" >> $F
         ls -al $F
    done
     
    head mami sono
    En execution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    sh ok.sh    
    -rw-r--r--   1 user     group            6 aoÃt  5 11:05 mami
    -rw-r--r--   1 user     group            5 aoÃt  5 11:05 sono
    -rw-r--r--   1 user     group           11 aoÃt  5 11:05 mami
    ==> mami <==
    fougi
    gaga
     
    ==> sono <==
    baby
    Signé : Capitaine Jean-Luc Picard

  4. #4
    Membre confirmé
    Avatar de argoet
    Inscrit en
    Mai 2002
    Messages
    582
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 582
    Points : 562
    Points
    562
    Par défaut
    [Resolu] : (Merci et de Rien !!!)

    Citation Envoyé par bster
    moi je ferrais ça comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    >for i in  `awk {'print $1'} FICHIER | uniq` ; do cat FICHIER| grep ^$i | awk {'print $2"\n"'} >> $i ; done
    >ls
    FICHIER
    mami
    sono
    >cat sono
    baby
    >
    totalement inutile de faire des scripts pour une edition si simple
    Interessant
    A souhaiter tout de meme que le fichier n'en genere pas 5000 avec 10000000 de Lignes à Traiter Sinon !! vive le traitement CPU & les acces Disques
    Signé : Capitaine Jean-Luc Picard

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

Discussions similaires

  1. Awk
    Par iamspacy dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 08/08/2007, 16h18
  2. Problème sur une cmd avec AWK
    Par OrangeBud dans le forum Linux
    Réponses: 3
    Dernier message: 02/06/2004, 10h51
  3. Awk - Traiter chaque ligne du fichier passwd
    Par tony montana dans le forum Linux
    Réponses: 7
    Dernier message: 25/03/2004, 09h40
  4. Tableau en paramètre - Shell et Awk
    Par gc243 dans le forum Linux
    Réponses: 7
    Dernier message: 10/12/2003, 13h32
  5. [langage] awk et sed dans script perl
    Par scoti dans le forum Langage
    Réponses: 3
    Dernier message: 07/04/2003, 18h26

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