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 :

decoupage avec awk + sed


Sujet :

Shell et commandes GNU

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 11
    Points : 8
    Points
    8
    Par défaut decoupage avec awk + sed
    Bonjour,

    j'ai un fichier qui se presente comme suit par exemple:

    aa.bb.cc.dd.inf on off serv1
    ee.qq.srv off on serv2
    oo.zz.tt.uu.pp.aa.cs off on serv3

    Je voudrai au final afficher (en suivant l'exemple du dessus):

    dd inf on off serv1
    qq srv off on serv2
    aa cs off on serv3

    J'ai testé plein de choses avec sed et hawk combiné mais rien n'y fait.
    Un idée??

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Essaie avec ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed 's/^.*\.\([a-z]*\)\.\([a-z]*\) \(.*\)$/\1 \2 \3/' monfichier
    Bien entendu, faut faire des modifs si tu as des chiffres ou des majuscules à prendre en compte mais tu devrais y arriver.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 24
    Points : 25
    Points
    25
    Par défaut
    La version avec awk

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo aa.bb.cc.dd.inf on off serv1 | awk -F. '{print $4 " " $5}'
    je te laisse deviner les autres

  4. #4
    Futur Membre du Club
    Inscrit en
    Avril 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    ça n'a pas l'air de fonctionner, il me concatene les 2 derniers champs

  5. #5
    Futur Membre du Club
    Inscrit en
    Avril 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par liodev
    La version avec awk

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo aa.bb.cc.dd.inf on off serv1 | awk -F. '{print $4 " " $5}'
    je te laisse deviner les autres
    je dois faire le traitement d'une traite, j'ai plus de 1000 lignes...de plus deja fais, mais merci

  6. #6
    Futur Membre du Club
    Inscrit en
    Avril 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    ok ça à l'air bon, merci de votre aide !!

  7. #7
    Membre éclairé Avatar de BlaireauOne
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    492
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2007
    Messages : 492
    Points : 652
    Points
    652
    Par défaut
    Citation Envoyé par killapig
    je dois faire le traitement d'une traite, j'ai plus de 1000 lignes...de plus deja fais, mais merci

    Extraction l'avant dernier et dernier champ d'un enreg :

    awk -F. '{ print $(NF-1), $NF}' fichier.txt


    NF = Number Fields of the record.

  8. #8
    Futur Membre du Club
    Inscrit en
    Avril 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par BlaireauOne
    Extraction l'avant dernier et dernier champ d'un enreg :

    awk -F. '{ print $(NF-1), $NF}' fichier.txt


    NF = Number Fields of the record.
    alors la je dis chapeau bas
    je pensai la manip impossible sans sed mais je me suis trompé...
    et dire que la solution etait si simple...
    Merci a tous pour votre precieuse aide, cela fait plaisir de trouver des gens qui aident comme ça

  9. #9
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 24
    Points : 25
    Points
    25
    Par défaut
    lol pas de quoi :p

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 17/02/2012, 11h57
  2. Suppression de caracteres en fin de ligne avec awk ou sed
    Par julinho99 dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 04/11/2008, 18h03
  3. Decoupage avec awk
    Par killapig dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 11/05/2007, 10h05
  4. Réponses: 33
    Dernier message: 15/10/2004, 16h19
  5. Problème sur une cmd avec AWK
    Par OrangeBud dans le forum Linux
    Réponses: 3
    Dernier message: 02/06/2004, 10h51

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