Supprimer un paragraphe contenant un mot
Résolu
Prezf
Messages postés
8
Date d'inscription
Statut
Membre
Dernière intervention
-
Prezf Messages postés 8 Date d'inscription Statut Membre Dernière intervention -
Prezf Messages postés 8 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
je suis nouveau sur le forum et je demande votre aide pour m'aider à mon problème.
J'ai actuellement un fichier .txt d'exemple de la forme :
-DEBUT-
BEGIN:VEVENT
DTSTAMP: ...
DTSTART: ...
DTEND: ...
UID: ...
SUMMARY:CM - InTsi\, InS4D\, InS4E
LOCATION: ...
DESCRIPTION: ...,
CATEGORIES: ...
END:VEVENT
-FIN-
j'ai cherché avec la commande sed comment supprimer tout un paragraphe du texte comme :
sed '/BEGIN/,/END/d' fichier.txt
et espérer avoir le résultat suivant :
-DEBUT-
-FIN-
Le seul problème c'est que je cherche a supprimer ce paragraphe mais a condition qu'il contienne le mot "InS4E"
J'espère que vous pourriez m'aider,
Merci d'avance
je suis nouveau sur le forum et je demande votre aide pour m'aider à mon problème.
J'ai actuellement un fichier .txt d'exemple de la forme :
-DEBUT-
BEGIN:VEVENT
DTSTAMP: ...
DTSTART: ...
DTEND: ...
UID: ...
SUMMARY:CM - InTsi\, InS4D\, InS4E
LOCATION: ...
DESCRIPTION: ...,
CATEGORIES: ...
END:VEVENT
-FIN-
j'ai cherché avec la commande sed comment supprimer tout un paragraphe du texte comme :
sed '/BEGIN/,/END/d' fichier.txt
et espérer avoir le résultat suivant :
-DEBUT-
-FIN-
Le seul problème c'est que je cherche a supprimer ce paragraphe mais a condition qu'il contienne le mot "InS4E"
J'espère que vous pourriez m'aider,
Merci d'avance
A voir également:
- Supprimer un paragraphe contenant un mot
- Supprimer rond bleu whatsapp - Guide
- Impossible de supprimer un fichier - Guide
- Trousseau mot de passe iphone - Guide
- Supprimer une page word - Guide
- Supprimer mot de passe windows 10 - Guide
5 réponses
Merci pour ta réponse mais il m'affiche une erreur :
sed: 1: "/DEBUT/{:z;N;/FIN/!bz;/ ...": unexpected EOF (pending }'s)
sed: 1: "/DEBUT/{:z;N;/FIN/!bz;/ ...": unexpected EOF (pending }'s)
Quel système ? Quelle version de sed ?
Essaye en rajoutant un point virgule avant l'avant dernière accolade :
Ou en mettant la syntaxe dans un fichier comme suit :
Et en l'appelant comma ça :
Essaye en rajoutant un point virgule avant l'avant dernière accolade :
sed '/DEBUT/{:z;N;/FIN/!bz;/InS4E/{s/\([^\n]*\n\).*\n\(.*\)/\1\2/;};}'
Ou en mettant la syntaxe dans un fichier comme suit :
$ cat script.sed /DEBUT/ { :z N /FIN/ !b z /InS4E/ { s/\([^\n]*\n\).*\n\(.*\)/\1\2/ } }
Et en l'appelant comma ça :
sed -f script.sed fichier
J'ai peut-être parlé un peu vite, sa me supprime juste la dernière ligne
Je suis sur MacBook et je n'arrive pas a connaitre la version de sed
Je suis sur MacBook et je n'arrive pas a connaitre la version de sed
Chez moi (Gnu/Linux) :
Voilà ce que ça donne :
$ sed --version GNU sed version 4.2.1
Voilà ce que ça donne :
$ cat plop -DEBUT0- BEGIN:VEVENT UID: ... SUMMARY:CM - InTsi\, InS4D\, LOCATION: ... END:VEVENT -FIN0- -DEBUT1- BEGIN:VEVENT UID: ... SUMMARY:CM - InTsi\, InS4D\, InS4E LOCATION: ... END:VEVENT -FIN1- -DEBUT2- BEGIN:VEVENT UID: ... SUMMARY:CM - InTsi\, InS4D\, LOCATION: ... END:VEVENT -FIN2- $ sed -f script.sed plop -DEBUT0- BEGIN:VEVENT UID: ... SUMMARY:CM - InTsi\, InS4D\, LOCATION: ... END:VEVENT -FIN0- -DEBUT1- -FIN1- -DEBUT2- BEGIN:VEVENT UID: ... SUMMARY:CM - InTsi\, InS4D\, LOCATION: ... END:VEVENT -FIN2- $
J'ai testé cette option mais le problème est la :
sed --version
sed: illegal option -- -
usage: sed script [-Ealn] [-i extension] [file ...]
sed [-Ealn] [-i extension] [-e script] ... [-f script_file] ... [file ...]
et effectivement c'est bien le resultat que je cherche !
Je vais essayer de mettre a jour sed
sed --version
sed: illegal option -- -
usage: sed script [-Ealn] [-i extension] [file ...]
sed [-Ealn] [-i extension] [-e script] ... [-f script_file] ... [file ...]
et effectivement c'est bien le resultat que je cherche !
Je vais essayer de mettre a jour sed
C'est bon sa marche ! J'ai mis a jour sed et executé le script et sa marche super bien ! Encore un grand merci !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question