SED au secours!!!

Résolu
fred -  
 fred -
bonjour

j'ai une question par rapport à sed

en fait moi je veux ça : sed -n '/regexp/{g;1!p;};h'(affiche la ligne precedent le mot recherché)
mais a l'envers c'est a dire

je veux que la ligne precedente disparaisse (genre ça sed -n '/texte/!p ) au lieu de s'afficher !
j'ai tout essayer a mon humble nivo je trouve pas......

merci pour votre aide!!!

10 réponses

jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Salut,

Essaie ça :
sed 'N;/.*\n.*regex.*/!{P;D;b};D'
;-))
1
fred
 
trop bien jipicy !!!

merci beaucoup ;)
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Sinon avec "ed" c'est encore plus simpliste :
ed -s fichier <<<$'/regex/-1d\n,p'
;-))
0
fred
 
merci mais ca marche pas pour ed ......

sinon allez derniere petite question il me faudrait aussi supprimer la 5eme ligne precedent le mot recherché

t'as une idée car je vois pas ou t'as gerer la ligne precedente dans ça :sed 'N;/.*\n.*regex.*/!{P;D;b};D' ???c'est quelle lettre qui gere la pâge precedente ? ça \n ?

merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
fred
 
ah si pardon ca marche pour ed mais c'est pas en boucle(en fait il me retire que le premier et pas quand il retrouve un autre...) je dois utiliser un g c'est ça ?

mais je sais pas trop ou le placer....

merci
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
ed -s fichier <<<$'g/regex/-1d\n,p'
0
fred
 
woua ! comment c'est pratique quelqu'un qui sait!!! ;-)

une petite derniere pour la route je veux virer la 1 et 5 ligne avant le mot recherché ?
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Essaye ça pour éliminer la ligne précédente et la 5 ème avant le motig...
ed -s fichier <<<$'g/regex/-1d\n-4d\n,p'
0
fred
 
oh bah ca marche pas ........... si j'en ai qu'un ca va mais si on a plusieurs mot recherché ca marche pas il suppruime que la precedente et rien d'autre....
0
fred
 
si j'ai vu en fait fallait pas en fait que le fichier commence par le mot recherche ca pourrissait tout, du coup je vire la 1ere ligne du fichier ;-)
0
fred
 
jipicy

dis moi comment tu ferais pour au lieu de supprimer la ligne precedente, la recuper pour la mettre dans un fichier?
0
fred
 
ah bah j'ai trouvé !!

ed -s essaiM <<<$'g/regex/-1' > netSED1.txt
0