SED au secours!!!

Résolu/Fermé
fred - 20 juil. 2009 à 12:55
 fred - 22 juil. 2009 à 15:36
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 jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
20 juil. 2009 à 13:11
Salut,

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

merci beaucoup ;)
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 895
20 juil. 2009 à 14:35
Sinon avec "ed" c'est encore plus simpliste :
ed -s fichier <<<$'/regex/-1d\n,p'
;-))
0
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
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 jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
20 juil. 2009 à 14:51
ed -s fichier <<<$'g/regex/-1d\n,p'
0
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 jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
20 juil. 2009 à 14:57
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
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
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
jipicy

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

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