SED au secours!!! [Résolu/Fermé]

Signaler
-
 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

Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 857
Salut,

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

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

trop bien jipicy !!!

merci beaucoup ;)
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 857
Sinon avec "ed" c'est encore plus simpliste :
ed -s fichier <<<$'/regex/-1d\n,p'
;-))
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
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
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 857
ed -s fichier <<<$'g/regex/-1d\n,p'
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é ?
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 857
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'
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....
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 ;-)
jipicy

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

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