Commande sed (sauvegarde nouveau fichier)

Résolu/Fermé
Bulld0 Messages postés 4 Date d'inscription jeudi 15 octobre 2015 Statut Membre Dernière intervention 16 octobre 2015 - Modifié par Bulld0 le 16/10/2015 à 08:46
Bulld0 Messages postés 4 Date d'inscription jeudi 15 octobre 2015 Statut Membre Dernière intervention 16 octobre 2015 - 16 oct. 2015 à 09:52
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 18722 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 9 mai 2024 5 615
16 oct. 2015 à 09:04
hello
$ cat fichier
----- BEGIN -----
fqsfdqsdgdQSDdqsd
SQDfqsfnlksdADSQD
qsdkmlaAZDsqdkxqc
----- END -----
$ sed -i '/BEGIN/, /END/{//!d}' fichier
$ cat fichier
----- BEGIN -----
----- END -----
2
Bulld0 Messages postés 4 Date d'inscription jeudi 15 octobre 2015 Statut Membre Dernière intervention 16 octobre 2015
16 oct. 2015 à 09:34
Merci beaucoup dubcek ! Peux tu m'expliquer à quoi sert {//!d} stp ? :)
0
dubcek Messages postés 18722 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 9 mai 2024 5 615
16 oct. 2015 à 09:49
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 Date d'inscription jeudi 15 octobre 2015 Statut Membre Dernière intervention 16 octobre 2015 > dubcek Messages postés 18722 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 9 mai 2024
16 oct. 2015 à 09:52
Yes merci t'es génial :)
0