Supprimer des lignes entre deux balises sous linux

Supprimer des lignes entre deux balises sous linux - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 28-12-2007 à 01:36:37    

Bonjour je ne sais pas si c'est possible mais je voudrais supprimer des lignes qui se trouvent entre deux balises dans un fichier texte sous linux en ligne de commande.
Par exemple j'ai dans le fichier toto.txt ceci:

Citation :


#debut_xx1
blablabla...
blavla
#fin_xx1

 

#debut_xx2
blablabla...
blavla
#fin_xx2

 

#debut_xx3
blablabla...
blavla
#fin_xx3


Par exemple je voudrais une commande qui me permet de supprimer les lignes entre #debut_xx2 et #fin_xx2

 

Merci de votre aide!


Message édité par foxyfox le 28-12-2007 à 01:37:11
Reply

Marsh Posté le 28-12-2007 à 01:36:37   

Reply

Marsh Posté le 28-12-2007 à 08:47:26    

man perl

Reply

Marsh Posté le 28-12-2007 à 08:54:05    

Avec perl, awk ou sed, ça doit pouvoir se faire ... mais pas vraiment de manière simple par contre :/


---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
Reply

Marsh Posté le 28-12-2007 à 09:27:47    

sed '/begin/,/end/ d'

 

edit : mais si tu veux exclure les balises du delete, c'est un peu moins simple. Sinon google+sgrep


Message édité par Xavier_OM le 28-12-2007 à 09:29:50

---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
Reply

Marsh Posté le 28-12-2007 à 19:13:22    

awk 'BEGIN{t=1} /#debut_xx2/{t=0} /#fin_xx2/{t=1; getline} {if(t) print}' toto.txt


 
Testé, ça marche.

Reply

Marsh Posté le 28-12-2007 à 19:44:40    

merci beaucoup les gens :). ca marche parfait

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed