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

Unix Discussion :

[Unix][Awk] Suppression de EOL dans certain cas


Sujet :

Unix

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    150
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 150
    Points : 100
    Points
    100
    Par défaut [Unix][Awk] Suppression de EOL dans certain cas
    Salut à tous,

    Je me permet de vous ecrire ce message car j'ai du mal à changer ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    rue.numero := (1,2,3,4,5,
    6,7,8,9,10,
    11,12);
    console.marque :="nintendo";
    alphabet.valeur := (a,b,c,d,e,
    f,g,h,i,j,
    k,l,m,n,o,
    p,q,r,s,t,
    u,v,w,x,y,
    z);
    en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    rue.numero := (1,2,3,4,5,6,7,8,9,10,11,12);
    console.marque :="nintendo";
    alphabet.valeur := (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z);
    Dans le premier cas il y a saut a la ligne apres 5 valeurs

    bon ben j'ai essayé sed mais je crois que c'est pas faisable
    Javai un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -e 's/\n//g' fichier.txt
    Je pense que awk peut m'aider
    J'ai ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk 'BEGIN{FS=","};NF>5{gsub(/\n/,"",g)};END{FS="\n";$0}' fichier.txt
    Mais bref j'y arrive pas.
    Quelqu'un pourrait m'aider? De plus je souhaite faire le tout en ligne de commande alors si c'est un script la solution pourrait-on m'aider à le transformer en ligne de commande?

    D'avance merci

    Bonne soirée

  2. #2
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    Février 2005
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 2 854
    Points : 5 915
    Points
    5 915
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     awk 'BEGIN{ RS=";"  }{ gsub("\n","",$0) ; print $0 RS  }' eol.txt

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    150
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 150
    Points : 100
    Points
    100
    Par défaut
    Citation Envoyé par becket Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     awk 'BEGIN{ RS=";"  }{ gsub("\n","",$0) ; print $0 RS  }' eol.txt
    Bravo champion c'est ca!
    Tu n'imagines pas le nombre d'heures que j'ai passé dessus mais j'ai appris enormément de commande unix grace à ca.

    Avant de mettre la balise resolu, pourrais-tu m'expliquer ta requete awk?

    Merci

  4. #4
    Expert éminent

    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
    Points : 6 276
    Points
    6 276
    Par défaut
    Salut,

    Pour le fun avec "sed" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed ':z;/;$/!N;/;$/!bz;s/\n//g'


    Édit : je suis un âne, ça devait être l'heure tardive... ou l'âge

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed ':z;/;$/!{N;bz};s/\n//g'
    $ man woman
    Il n'y a pas de page de manuel pour woman.

  5. #5
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 882
    Points
    7 882
    Par défaut
    Une autre méthode avec awk:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    awk '/,$/ {printf("%s",$0);next;}
    {print}' fichier.txt
    ɹǝsn *sıɹɐlos*

  6. #6
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    Février 2005
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 2 854
    Points : 5 915
    Points
    5 915
    Par défaut
    Citation Envoyé par becket Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     awk 'BEGIN{ RS=";"  }{ gsub("\n","",$0) ; print $0 RS  }' eol.txt
    C'est assez simple, je spécifie qu'un enregistrement ne se termine pas par un retour à la ligne mais par un ; ( RS=";" ) ensuite, je transforme tous les retour à la ligne ( \n ) par rien ( "" ) avec gsub("\n","",$0) .

    Pour finir j'affiche l'enregistrement et je lui ajoute le séparateur RS.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    150
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 150
    Points : 100
    Points
    100
    Par défaut
    Merci pour toutes ces explications.

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

Discussions similaires

  1. [sed]Suppression de saut de ligne dans certains cas
    Par Anthony.Desvernois dans le forum Linux
    Réponses: 11
    Dernier message: 09/07/2007, 11h33
  2. Empecher la validation dans certains cas ?
    Par elitost dans le forum Struts 1
    Réponses: 2
    Dernier message: 19/09/2006, 13h03
  3. Passer la validation Javascript dans certains cas
    Par tkino dans le forum Struts 1
    Réponses: 2
    Dernier message: 31/07/2006, 15h37
  4. [JOINTURES] interêt dans certain cas
    Par nicotine002 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 13/06/2006, 17h22
  5. [POO] Modèle objet: this inutilisable dans certains cas?
    Par vlord dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 13/08/2005, 10h41

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