Suppression lignes dans un fichier

Résolu/Fermé
chris - 1 oct. 2008 à 12:11
 chris - 1 oct. 2008 à 16:04
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!
A voir également:

4 réponses

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
c'est (encore) parfait, merci !
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 896
1 oct. 2008 à 13:02
Salut,
sed 'N;/motif/{N;d}' fichier
:-))
-1
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 896
1 oct. 2008 à 15:57
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