Commande sed (sauvegarde nouveau fichier)

Résolu
Bonjour,

Après avoir essayé toutes les options de sed, je ne trouve pas de facon pour réaliser mon besoin. Je souhaite supprimer des lignes (des informations inutiles comprises entre les mots BEGIN et END) d'un fichier test.conf dans ce genre la :

----- BEGIN -----
fqsfdqsdgdQSDdqsd
SQDfqsfnlksdADSQD
qsdkmlaAZDsqdkxqc
----- END -----

Le truc c'est que j'arrive à supprimer ces lignes mais à peine la commande arrétée, si j'ouvre le fichier, elles y sont... Comment faire s'il vous plait ? :'(

Merci d'avance

1 réponse

  1. Contributeur
    hello
    $ cat fichier
    ----- BEGIN -----
    fqsfdqsdgdQSDdqsd
    SQDfqsfnlksdADSQD
    qsdkmlaAZDsqdkxqc
    ----- END -----
    $ sed -i '/BEGIN/, /END/{//!d}' fichier
    $ cat fichier
    ----- BEGIN -----
    ----- END -----
    2
    1. Merci beaucoup dubcek ! Peux tu m'expliquer à quoi sert {//!d} stp ? :)
      0
    2. Contributeur
      ca permet de ne pas détruire (!d) les lignes qui contiennent BEGIN et END
      sinon on enlève tout
      $ sed  '/BEGIN/, /END/d' fichier
      $
      0
    3. @dubcekYes merci t'es génial :)
      0