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 :

Suppression de lignes dans un fichier


Sujet :

Shell et commandes GNU

  1. #1
    Expert éminent
    Avatar de elitost
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2003
    Messages
    1 985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 985
    Points : 6 566
    Points
    6 566
    Par défaut Suppression de lignes dans un fichier
    Bonjour,

    J'ai un fichier fichier.txt dont le contenu est comme comme ceci (c'est juste un extrait modifié) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    aaa:1
    bbb:2
    ccc:3
    FIELD:4
    FIELD:5
    ddd:6
    <EOD>
    aaa:1
    bbb:2
    ccc:3
    FIELD:4
    FIELD:5
    ddd:6
    <EOD>
    Je souhaiterais au final obtenir un second fichier fichier2.txt dont certaines lignes seraient supprimmées :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    FIELD:4
    FIELD:5
    <EOD>
    FIELD:4
    FIELD:5
    <EOD>
    Comment procéder pour faire ceci ? quelles commandes utiliser ?

    Merci d'avance

  2. #2
    LLB
    LLB est déconnecté
    Membre expérimenté
    Inscrit en
    Mars 2002
    Messages
    967
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 967
    Points : 1 410
    Points
    1 410
    Par défaut
    man grep

    Par exemple :
    Supprime toutes les lignes qui commencent par des minuscules, suivies de ":".

  3. #3
    Expert éminent
    Avatar de elitost
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2003
    Messages
    1 985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 985
    Points : 6 566
    Points
    6 566
    Par défaut
    Citation Envoyé par LLB Voir le message
    man grep

    Par exemple :
    Supprime toutes les lignes qui commencent par des minuscules, suivies de ":".
    Le grep devrait bien m'aider pour cette tâche.

    Mais comment dire à grep de garder les lignes commençant par (par exemple), et donc d'exclure les autres :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    FIELD:
    FIELD2:
    MALIGNE:
    <EOD>

  4. #4
    LLB
    LLB est déconnecté
    Membre expérimenté
    Inscrit en
    Mars 2002
    Messages
    967
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 967
    Points : 1 410
    Points
    1 410
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grep -Ev '^(FIELD:|FIELD2:|MALIGNE:|<EOD>)'
    L'option -E indique que l'on utilise des regexps étendues (sinon il faudrait ajouter des backslash).
    ^ indique le début de la ligne.
    | indique une alternative.

  5. #5
    Expert éminent
    Avatar de elitost
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2003
    Messages
    1 985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 985
    Points : 6 566
    Points
    6 566
    Par défaut
    J'ai fais quelques essais mais infructueux pour le moment.

    Mon fichier texte nommé test.txt :

    aaa:1
    bbb:2
    ccc:3
    FIELD:444444444444444444444444444444444444444444444444444444444444444444444444445555
    FIELD2:5
    ddd:6
    MALIGNE:abcdef
    <<EOD>>
    aaa:1
    MALIGNE:test
    bbb:2
    ccc:3
    FIELD:4
    FIELD2:5
    ddd:6
    <<EOD>>
    Ma commande grep :

    grep -Ev '^(FIELDFIELD2MALIGNE<<EOD>>)' test.txt
    Le résultat :

    aaa:1
    bbb:2
    ccc:3
    ddd:6
    aaa:1
    bbb:2
    ccc:3
    ddd:6
    Ce que je voudrais :

    FIELD:444444444444444444444444444444444444444444444444444444444444444444444444445555
    FIELD2:5
    MALIGNE:abcdef
    <<EOD>>
    MALIGNE:test
    FIELD:4
    FIELD2:5
    <<EOD>>
    Mais je sèche...une idée ?

  6. #6
    LLB
    LLB est déconnecté
    Membre expérimenté
    Inscrit en
    Mars 2002
    Messages
    967
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 967
    Points : 1 410
    Points
    1 410
    Par défaut
    Lire le manuel ?

    L'option -v sert à inverser l'affichage. Enlève là, ça fera ce que tu veux.

  7. #7
    Expert éminent
    Avatar de elitost
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2003
    Messages
    1 985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 985
    Points : 6 566
    Points
    6 566
    Par défaut
    Super , ça fonctionne !

    Je te remercie beaucoup pour ton aide.

    Bonne journée.

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

Discussions similaires

  1. suppression de lignes dans un fichier texte
    Par lerab51 dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 23/10/2007, 11h23
  2. Suppression de lignes dans un fichier texte
    Par Isa31 dans le forum Langage
    Réponses: 16
    Dernier message: 26/01/2006, 20h07
  3. Suppression de lignes dans un fichier sous dos
    Par ducho dans le forum Windows
    Réponses: 2
    Dernier message: 16/05/2005, 10h20
  4. Suppression de lignes dans un fichier
    Par bubu dans le forum Linux
    Réponses: 2
    Dernier message: 13/01/2005, 10h36

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