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 :

Transformer un fichier .txt


Sujet :

Shell et commandes GNU

  1. #21
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $ cat fich 
    groupe1
    ID=aaaaa
    ID=bbbbbb
    groupe2
    ID=cccccc
    ID=dddddd
    groupe3
    ID=eeeeee
    ID=ffffff
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $ sed -n 'h;:z;N;/\nID=/!D;/\nID=/{s/\n/;/p;g;bz}' fich
    groupe1;ID=aaaaa
    groupe1;ID=bbbbbb
    groupe2;ID=cccccc
    groupe2;ID=dddddd
    groupe3;ID=eeeeee
    groupe3;ID=ffffff

  2. #22
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 422
    Par défaut
    le script ne marche pas mm sur l'exemple

  3. #23
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Quel script ?
    Si c'est le dernier que je t'ai mis, chez moi il marche, donc merci de nous poster des exemples concrets comme demandé auparavant

  4. #24
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 422
    Par défaut
    j'ai reessayé le dernier script sur l'exemple que tu as donnée

    sinon voila la structure de mon fichier

    DIGJ_ABH_D_THD_- //nom du groupe
    uid=YHAYH //membre
    uid=XSCDF
    DIGJ_TGH_D_THD_- //nom du groupe
    uid=HEGDF //membre
    uid=UIJDBC
    uid=XSCDF

    et voici le resultat

    DIGJ_ABH_D_THD_-;uid=YHAYH
    DIGJ_ABH_D_THD_-;uid=XSCDF
    DIGJ_TGH_D_THD_-;uid=HEGDF
    DIGJ_TGH_D_THD_-;uid=UIJDBC
    DIGJ_TGH_D_THD_-;uid=XSCDF

  5. #25
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Oui, et c'est quoi qui cloche ???

  6. #26
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 422
    Par défaut
    je ne sais pas je n'ai aucun message d'erreur je n'ai rien en sortie non plus

  7. #27
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Et à quoi ressemble la syntaxe modifiée que tu as tapée en rapport à ton fichier ?

  8. #28
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 422
    Par défaut
    j'ai ecris


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    #!/bin/sh
    sed -n 'h;:z;N;/\nuid=/!D;/\nuid=/{s/\n/;/p;g;bz}' fichier > fichier2

  9. #29
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $ cat fich 
    DIGJ_ABH_D_THD_-
    uid=YHAYH
    uid=XSCDF
     
    DIGJ_TGH_D_THD_-
    uid=HEGDF
    uid=UIJDBC
    uid=XSCDF
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $ sed -n 'h;:z;N;/\nuid=\|\n$/!D;/\nuid=/{s/\n/;/p;g;bz}' fich
    DIGJ_ABH_D_THD_-;uid=YHAYH
    DIGJ_ABH_D_THD_-;uid=XSCDF
    DIGJ_TGH_D_THD_-;uid=HEGDF
    DIGJ_TGH_D_THD_-;uid=UIJDBC
    DIGJ_TGH_D_THD_-;uid=XSCDF

  10. #30
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    C'est bizarre que ta syntaxe ne marche pas, je viens de la tester suir mon "fich" et...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $ sed -n 'h;:z;N;/\nuid=/!D;/\nuid=/{s/\n/;/p;g;bz}' fich
    DIGJ_ABH_D_THD_-;uid=YHAYH
    DIGJ_ABH_D_THD_-;uid=XSCDF
    DIGJ_TGH_D_THD_-;uid=HEGDF
    DIGJ_TGH_D_THD_-;uid=UIJDBC
    DIGJ_TGH_D_THD_-;uid=XSCDF
    Ça marche

  11. #31
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 422
    Par défaut
    dans le dernier exemple il y a un saut de ligne pour séparer les groupe or j'en ai pas dans mon fichier

  12. #32
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $ cat fichier
    DIGJ_ABH_D_THD_- //nom du groupe
    uid=YHAYH //membre
    uid=XSCDF
    DIGJ_TGH_D_THD_- //nom du groupe
    uid=HEGDF //membre
    uid=UIJDBC
    uid=XSCDF
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    awk '!/^uid/{g=$1};/^uid/{ar[g]=ar[g]?ar[g]"|"$1:$1}END{for(i in ar){split(ar[i],aa,"|"); for(ii in aa)printf("%s;%s\n",i,aa[ii])}}' fichier
    DIGJ_ABH_D_THD_-;uid=YHAYH
    DIGJ_ABH_D_THD_-;uid=XSCDF
    DIGJ_TGH_D_THD_-;uid=HEGDF
    DIGJ_TGH_D_THD_-;uid=UIJDBC
    DIGJ_TGH_D_THD_-;uid=XSCDF

  13. #33
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Citation Envoyé par huître Voir le message
    dans le dernier exemple il y a un saut de ligne pour séparer les groupe or j'en ai pas dans mon fichier
    Avec ou sans ligne vide ça marche pareil :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $ cat fich
    DIGJ_ABH_D_THD_-
    uid=YHAYH
    uid=XSCDF
    DIGJ_TGH_D_THD_-
    uid=HEGDF
    uid=UIJDBC
    uid=XSCDF
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $ sed -n 'h;:z;N;/\nuid=/!D;/\nuid=/{s/\n/;/p;g;bz}' fich
    DIGJ_ABH_D_THD_-;uid=YHAYH
    DIGJ_ABH_D_THD_-;uid=XSCDF
    DIGJ_TGH_D_THD_-;uid=HEGDF
    DIGJ_TGH_D_THD_-;uid=UIJDBC
    DIGJ_TGH_D_THD_-;uid=XSCDF

  14. #34
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 430
    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 430
    Par défaut
    Peut-être que les fichiers originaux sont du type windows...
    Après un petit dos2unix , cela fonctionnera peut-être ...

  15. #35
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Par défaut
    Alternative awk:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk '/_-$/{g=$1;next}{print g ";"$0} fichier

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/11/2012, 11h39
  2. Transformer un fichier txt en xml
    Par hitchie dans le forum Général Python
    Réponses: 4
    Dernier message: 06/05/2009, 11h05
  3. Transformer un fichier .txt en .wav
    Par stage84 dans le forum LabVIEW
    Réponses: 1
    Dernier message: 16/07/2008, 12h23
  4. Réponses: 5
    Dernier message: 19/06/2008, 23h03
  5. [Tableaux] transformation d'un fichier txt en xml
    Par edophie dans le forum Langage
    Réponses: 1
    Dernier message: 26/09/2006, 12h55

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