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 :

Supprimer les blancs de façon intelligente ?


Sujet :

Shell et commandes GNU

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Mars 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mars 2015
    Messages : 6
    Points : 9
    Points
    9
    Par défaut Supprimer les blancs de façon intelligente ?
    Bonjour,

    J'ai un petit problème :
    Voici la façon dont mon fichier est composé :

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    jm.XXXXXXclud@gmail.com:Marseille
     
     
    |JEAN MXXXX
    |XXXXX
    |M.
    |51
    |13XXX
    |XXXXX XXXX
    |12 / 1990
    |2 sub
    |1 prod
     
     
     
     
    dXXXXc@orange.fr:Lyon
     
     
    |CAROLINE
    |XXXXXX
    |M.
    |41
    |69XXX
    |XXXXX
    |#1: 10 / 2016
    |#2: 10 / 2015
    |5 sub
    |1 prod
     
     
     
     
    stabilXXXXX@yahoo.fr:PARIS
     
     
    |M
    |PARIS
    |Mlle
    |36
    |42000
    |ST ETIENNE
     
     
     
     
    flag_50@hotmail.com:Marseille
     
     
    |XXXX
    |XXXX
    |Mme
    |32
    |13XXXXX
    |SXX XXXX XXXX
    |12 / 1986
    |30 sub
    |1 prod
    Je cherche donc à supprimer les lignes entre le mail:ville et la premiere ligne qui vient ainsi que supprimer les espaces entre la dernière ligne (souvent |X prod) par une seul ligne (espace).

    Suis-je compréhensible ?

    Sinon voici le rendu final voulu :

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    jm.XXXXXXclud@gmail.com:Marseille
    |JEAN MXXXX
    |XXXXX
    |M.
    |51
    |13XXX
    |XXXXX XXXX
    |12 / 1990
    |2 sub
    |1 prod
     
    dXXXXc@orange.fr:Lyon
    |CAROLINE
    |XXXXXX
    |M.
    |41
    |69XXX
    |XXXXX
    |#1: 10 / 2016
    |#2: 10 / 2015
    |5 sub
    |1 prod
     
    stabilXXXXX@yahoo.fr:PARIS
    |M
    |PARIS
    |Mlle
    |36
    |42000
    |ST ETIENNE
     
    flag_50@hotmail.com:Marseille
    |XXXX
    |XXXX
    |Mme
    |32
    |13XXXXX
    |SXX XXXX XXXX
    |12 / 1986
    |30 sub
    |1 prod
    Merci !

  2. #2
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 264
    Points
    12 264
    Par défaut
    https://www.google.fr/search?q=sed+onliners devrait t'indiquer les sed à faire pour tes besoins.

  3. #3
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 778
    Points
    30 778
    Par défaut
    Une manière de faire serait de supprimer toutes les lignes blanches puis en ajouter une avant les adresses.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grep -v '^ *$' monfichier | sed -e 's/^\(.*@.*:.*\)$/\n\1/'
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  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,

    Citation Envoyé par al1_24 Voir le message
    Une manière de faire serait de supprimer toutes les lignes blanches puis en ajouter une avant les adresses.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grep -v '^ *$' monfichier | sed -e 's/^\(.*@.*:.*\)$/\n\1/'
    On simplifie : sed '/^ $/d;/^|/!{s/.*/\n&/}' fichier
    $ man woman
    Il n'y a pas de page de manuel pour woman.

  5. #5
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 778
    Points
    30 778
    Par défaut
    Joli
    Manque juste une petite * après l'espace dans la première expression
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  6. #6
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 266
    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 266
    Points : 12 681
    Points
    12 681
    Par défaut
    Bonjour,

    Ma petite version sed qui se prête bien au fichier exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -n '/^|/,/^ $/p;/^[^| ]/p' fichier
    Cordialement.

  7. #7
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 266
    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 266
    Points : 12 681
    Points
    12 681
    Par défaut
    Et puis après tout, une version awk:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk '/[|]/;{$0="\n"$0}/^[^| ]*$/' fichier
    D'ailleurs, je me demande pourquoi elle fonctionne
    Cordialement.

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

Discussions similaires

  1. Supprimer les blancs dans un texte lors de l'ecriture
    Par nypahe dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 10/05/2009, 20h30
  2. Réponses: 7
    Dernier message: 20/09/2007, 11h17
  3. Réponses: 2
    Dernier message: 09/03/2007, 17h52
  4. Supprimer les blancs
    Par Aitone dans le forum SAP Crystal Reports
    Réponses: 6
    Dernier message: 13/12/2006, 12h14
  5. Réponses: 2
    Dernier message: 27/07/2006, 11h17

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