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
A voir également:

1 réponse

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