Suppression lignes dans un fichier

Résolu
chris -  
 chris -
Bonjour,
Je cherche à supprimer des lignes dans un fichier en fonction de mots clés:
si j'ai le mot clé toto dans une ligne, je veux supprimer la ligne au-dessus ainsi que la ligne en-dessous.
J'ai commencé à trouver des pistes via sed et cut, mais j'ai du mal à trouver ma solution !
Une idée ? merci!
Configuration: Windows XP
Firefox 2.0.0.17

4 réponses

  1. chris
     
    Je rectifie:
    si j'ai le mot clé toto dans une ligne, je veux supprimer la ligne au-dessus, en dessous et la ligne contenant le mot clé (3 suppressions de ligne en fait)
    0
  2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,
    sed 'N;/motif/{N;d}' fichier
    :-))
    -1
  3. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Je rectifie ma 1ère réponse (qui n'apparait pas pour l'instant ???) et qui est incomplète ;-((

    Donc la bonne syntaxe est :
    sed 'h;N;/motif/!{P;D};{N;d}' fichier
    Un exemple :
    [tmpfs]$ cat fichier
    A
    B
    C
    D
    E
    F
    G
    
    [tmpfs]$ sed 'h;N;/B/!{P;D};{N;d}' fichier
    D
    E
    F
    G
    
    [tmpfs]$ sed 'h;N;/D/!{P;D};{N;d}' fichier
    A
    B
    F
    G
    
    [tmpfs]$ sed 'h;N;/F/!{P;D};{N;d}' fichier
    A
    B
    C
    D
    
    [tmpfs]$
    ;-))
    -1