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 :

Recherche et extraction deux mots sur un fichier


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Doctorant
    Inscrit en
    Février 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Doctorant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 19
    Par défaut Recherche et extraction deux mots sur un fichier
    Bonjour,

    j'ai un fichier "test.txt" qui ressemble à:

    UserPosition X [at 0.001] 795 513 162 210
    UserPosition Y [at 0.001] 444 830 794 956
    TX INF_BUF ID 0 B 3 SIZE 424 SRC 103 DST 1 T 0.001 33
    RX INF_BUF ID 0 B 3 SIZE 424 SRC 103 DST 1 D 0.001 33
    UserPosition X [at 0.002] 795.007 512.993 162.002 209.997
    UserPosition Y [at 0.002] 443.995 829.996 793.992 956.008
    TX INF_BUF ID 1 B 3 SIZE 424 SRC 103 DST 1 T 0.002 33
    RX INF_BUF ID 1 B 3 SIZE 424 SRC 103 DST 1 D 0.001 33
    UserPosition X [at 0.003] 795.014 512.985 162.003 209.994
    UserPosition Y [at 0.003] 443.99 829.992 793.984 956.016

    je veux copier les résultats sur un autre fichier "test_X_Y.txt" sous cette forme:

    UserPosition X UserPosition Y
    champ $5 champ $5
    j'ai essayé de faire ces ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    file_in=file.txt
    file_out=test.txt
    egrep 'UserPosition X|UserPosition Y' ${file_in} | awk '{print $5}' > ${file_out}
    mais j'ai:
    une valeur UserPosition X
    une valeur UserPosition Y
    une valeur UserPosition X
    une valeur UserPosition Y
    une valeur UserPosition X
    une valeur UserPosition Y
    .
    .
    .
    et moi je veux :
    une valeur UserPosition X une valeur UserPosition Y
    une valeur UserPosition X une valeur UserPosition Y
    une valeur UserPosition X une valeur UserPosition Y
    .
    .
    que dois-je faire?
    Merci d'avance

  2. #2
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 422
    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 422
    Par défaut
    Bonjour,

    Si les champs que cela t'affiche l'un en dessous de l'autre te conviennent, alors il suffit de modifier ton awk comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk '{A=$5 ; getline ; print A,$5}'
    ici, on récupère, le champs $5 dans A, on lit la ligne suivante, et on affiche A ainsi que le nouveau $5.

  3. #3
    Membre actif
    Homme Profil pro
    Doctorant
    Inscrit en
    Février 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Doctorant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 19
    Par défaut
    je t'explique ce que je veux par un petit exemple,

    j'ai un fichier "A" qui contient :
    UserPosition X [at 0.001] 795 513 162 210
    UserPosition Y [at 0.001] 444 830 794 956
    TX INF_BUF ID 0 B 3 SIZE 424 SRC 103 DST 1 T 0.001 33
    RX INF_BUF ID 0 B 3 SIZE 424 SRC 103 DST 1 D 0.001 33
    je veux enregistrer dans un autre ficher "B" les valeurs comme suits:

    #UserPosition X UserPosition Y
    795 444
    deux colonnes X et Y , tu vois!

  4. #4
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 422
    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 422
    Par défaut
    Bah, je vais refaire la même réponse, tu remplaces ta partie awk par celle que j'ai donné et cela donne ce que tu veux:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    file_in=file.txt
    file_out=test.txt
    egrep 'UserPosition X|UserPosition Y' ${file_in} | awk '{A=$5; getline; print A,$5}' > ${file_out}
    Et avec la ligne d'entête, il suffit de rajouter un bloc begin dans le awk:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    file_in=file.txt
    file_out=test.txt
    egrep 'UserPosition X|UserPosition Y' ${file_in} | awk 'BEGIN{print "#USERPosition X","UserPosition Y"}{A=$5 ; getline ; print A,$5}' > ${file_out}

  5. #5
    Membre actif
    Homme Profil pro
    Doctorant
    Inscrit en
    Février 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Doctorant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 19
    Par défaut
    Merci #disedorgue
    ça marche

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

Discussions similaires

  1. [batch] Comment rechercher deux mots dans un fichier .txt ?
    Par koKoTis dans le forum FAQs Windows
    Réponses: 0
    Dernier message: 10/02/2009, 18h54
  2. Extraction de mots d'un fichier texte
    Par arkady75 dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 06/12/2007, 00h20
  3. rechercher et extraire deux chaines dans un fichier
    Par piotr dans le forum Langage
    Réponses: 16
    Dernier message: 13/07/2006, 16h07
  4. Recherche le nombre de mots dans un fichier
    Par peppena dans le forum Linux
    Réponses: 2
    Dernier message: 19/04/2006, 11h46
  5. Extraction de données sur des fichiers excel
    Par iupgeii dans le forum MFC
    Réponses: 3
    Dernier message: 23/01/2004, 14h53

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