OVH Cloud OVH Cloud

Suppression de texte dans un fichier

6 réponses
Avatar
Sébastien GALLET
Salut,
je recherche un pro des expressions régulières (ou autre) qui puisse
m'aider a résoudre mon problème.
Je suis en train de faire des paquets debian, et je dois modifier un
fichier texte depuis le postinst (en ligne de commande).
Le texte à supprimer dans le fichier est le suivant

<dictionary id="german">
<element title="Deutsch" language="DE"/>
<element title="German" language="EN"/>
<element debug="false"/>
<execute cmd="ispell -ddeutsch -a -P -H -Tlatin1"/>
</dictionary>

et pour faciliter la chose, il peut il y avoir un nombre quelconque de
ligne du style <element title="German" language="EN"/>.
Bref tout ce qu'il y a entre <dictionary id="german"> et </dictionary>
Merci d'avance

Sébastien
Qui a débuté sur Victor Lambda
http://www.silicium.org/france/hector/victor_lambda.htm


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org

6 réponses

Avatar
Vincent Lefevre
On 2005-07-11 16:17:24 +0200, Sébastien GALLET wrote:
Le texte à supprimer dans le fichier est le suivant

<dictionary id="german">
<element title="Deutsch" language="DE"/>
<element title="German" language="EN"/>
<element debug="false"/>
<execute cmd="ispell -ddeutsch -a -P -H -Tlatin1"/>
</dictionary>

et pour faciliter la chose, il peut il y avoir un nombre quelconque de
ligne du style <element title="German" language="EN"/>.
Bref tout ce qu'il y a entre <dictionary id="german"> et </dictionary>



Si c'est un fichier XML, tu peux utiliser XMLStarlet.
Un truc du genre:

xmlstarlet ed -d "//dictionary[@id='german']" fichier.xml

--
Vincent Lefèvre - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / SPACES project at LORIA


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Sébastien GALLET
Vincent Lefevre a écrit :
On 2005-07-11 16:17:24 +0200, Sébastien GALLET wrote:

Le texte à supprimer dans le fichier est le suivant

<dictionary id="german">
<element title="Deutsch" language="DE"/>
<element title="German" language="EN"/>
<element debug="false"/>
<execute cmd="ispell -ddeutsch -a -P -H -Tlatin1"/>
</dictionary>

et pour faciliter la chose, il peut il y avoir un nombre quelconque de
ligne du style <element title="German" language="EN"/>.
Bref tout ce qu'il y a entre <dictionary id="german"> et </dictionary>




Si c'est un fichier XML, tu peux utiliser XMLStarlet.


Ca n'est pas un fichier xml mais il a une structure du type xml. Il y a
quelques # pour commenter. Si je les vires ta méthode fonctionne.
Mais je ne prefererais une solution en ed ou perl me conviendrai mieux.
Un truc du genre:

xmlstarlet ed -d "//dictionary[@id='german']" fichier.xml


Je ne connaissais pas cet outil. Il va m'être d'une grande utilité pour
modifier les fichiers xml.
Merci beaucoup





--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
pascal
Sébastien GALLET a écrit :
Salut,
je recherche un pro des expressions régulières (ou autre) qui puisse
m'aider a résoudre mon problème.


Pas nécessaire...
Je suis en train de faire des paquets debian, et je dois modifier un
fichier texte depuis le postinst (en ligne de commande).
Le texte à supprimer dans le fichier est le suivant

<dictionary id="german">
<element title="Deutsch" language="DE"/>
<element title="German" language="EN"/>
<element debug="false"/>
<execute cmd="ispell -ddeutsch -a -P -H -Tlatin1"/>
</dictionary>

et pour faciliter la chose, il peut il y avoir un nombre quelconque de
ligne du style <element title="German" language="EN"/>.
Bref tout ce qu'il y a entre <dictionary id="german"> et </dictionary>
Merci d'avance



Tu peux utiliser sed :
sed '/^<dictionary /,//dictionary>$/d' < monfichierXML
s'il n'y a pas d'autres balises <dictionary attribut=...> entre tes
deux balises sinon
sed '/^<dictionary id="german">$/,//dictionary>$/d' < monfichierXML
Pascal
--
Quand on vit dans cet hôtel
mourir c'est gravir un échelon.
R. Brautigan




--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
David Dumortier
Le Mon Jul 11 2005 à 04:17:24PM +0200, Sébastien GALLET dit :
Salut,



Salut,
[...]

Le texte à supprimer dans le fichier est le suivant

<dictionary id="german">
<element title="Deutsch" language="DE"/>
<element title="German" language="EN"/>
<element debug="false"/>
<execute cmd="ispell -ddeutsch -a -P -H -Tlatin1"/>
</dictionary>

et pour faciliter la chose, il peut il y avoir un nombre quelconque de
ligne du style <element title="German" language="EN"/>.
Bref tout ce qu'il y a entre <dictionary id="german"> et </dictionary>



sed '/<dictionary id="german">/,/</dictionary>/d' ?

Merci d'avance



Hop'It'Elp

Sébastien
Qui a débuté sur Victor Lambda



Bull Micral (mais juste du basic de base), je n'ai vu les VICTOR que de loin.
Au fait quelqu'un se souvient des "Leanor" ?
--
David Dumortier, jeunot mais quand même ;-)


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Sébastien GALLET
David Dumortier a écrit :
Le Mon Jul 11 2005 à 04:17:24PM +0200, Sébastien GALLET dit :

Salut,




Salut,
[...]


Le texte à supprimer dans le fichier est le suivant

<dictionary id="german">
<element title="Deutsch" language="DE"/>
<element title="German" language="EN"/>
<element debug="false"/>
<execute cmd="ispell -ddeutsch -a -P -H -Tlatin1"/>
</dictionary>

et pour faciliter la chose, il peut il y avoir un nombre quelconque de
ligne du style <element title="German" language="EN"/>.
Bref tout ce qu'il y a entre <dictionary id="german"> et </dictionary>




sed '/<dictionary id="german">/,/</dictionary>/d' ?


Yes Yes Yes
Et pas facile de faire plus simple.
Merci beaucoup


Merci d'avance




Hop'It'Elp


A looot ...


Sébastien
Qui a débuté sur Victor Lambda




Bull Micral (mais juste du basic de base), je n'ai vu les VICTOR que de loin.
Au fait quelqu'un se souvient des "Leanor" ?


Non c'est koi cette bête ?


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Sébastien GALLET
pascal a écrit :
Sébastien GALLET a écrit :

Salut,
je recherche un pro des expressions régulières (ou autre) qui puisse
m'aider a résoudre mon problème.



Pas nécessaire...



C'est clair que je n'en avais pas besoin :D
Merci de ton aide.


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact