Commande sed (sauvegarde nouveau fichier)

Résolu
Bulld0 Messages postés 4 Statut Membre -  
Bulld0 Messages postés 4 Statut Membre -
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. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    $ cat fichier
    ----- BEGIN -----
    fqsfdqsdgdQSDdqsd
    SQDfqsfnlksdADSQD
    qsdkmlaAZDsqdkxqc
    ----- END -----
    $ sed -i '/BEGIN/, /END/{//!d}' fichier
    $ cat fichier
    ----- BEGIN -----
    ----- END -----
    2
    1. Bulld0 Messages postés 4 Statut Membre
       
      Merci beaucoup dubcek ! Peux tu m'expliquer à quoi sert {//!d} stp ? :)
      0
    2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
       
      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
      1. Bulld0 Messages postés 4 Statut Membre > dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Yes merci t'es génial :)
        0