SED au secours!!!

Résolu
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!!!
Configuration: Windows XP
Firefox 3.5.1

10 réponses

  1. Modérateur
    Salut,

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

      merci beaucoup ;)
      0
      1. Modérateur
        Sinon avec "ed" c'est encore plus simpliste :
        ed -s fichier <<<$'/regex/-1d\n,p'
        ;-))
        0
        1. 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
          1. 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
            1. Modérateur
              ed -s fichier <<<$'g/regex/-1d\n,p'
              0
              1. 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
                1. Modérateur
                  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
                  1. 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
                    1. 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
                  2. jipicy

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

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