Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
874 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [Sed] Afficher plusieurs lignes de texte dans des balises

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Sed] Afficher plusieurs lignes de texte dans des balises

n°755484
Dart Abitb​ol
Posté le 23-11-2005 à 23:58:24  profilanswer
 


Bonjour ,  
 
 
Alors voila , dans le cadre d'un script CGI , j'ai besoin de sélectionner certaines lignes d'un fichier texte.
Ces lignes sont délimitées par des balises (similaires à des balise HTML).
 
en gros un truc du genre :  
AA
BB
CC
DD
EE
<Directory>
FF
GG
HH
</Directory>

 
Et je voulais supprimer les lignes qui apparaissent entre les balises "Directory" , pour cela , j'ai utilisé la commande Sed suivante :  

Code :
  1. sed -e "/<Directory>/,/<\/Directory>/d" test.txt


 
Mais comment faire pour obtenir le resultat inverse (en gros afficher toutes les lignes en dehors des balises) ???  
J'ai essayé de rajouter de faire :  
 

Code :
  1. sed -e "/<Directory>/,/<\/Directory>/!d" test.txt


 
D'après ce document ça devrait fonctionner , mais comme d'hab ça marche pas comme ça devrait ^o^
 
Kelk'un aurait une idée ?
Merci d'avance.

mood
Publicité
Posté le 23-11-2005 à 23:58:24  profilanswer
 

n°755488
matafan
Posté le 24-11-2005 à 00:52:44  profilanswer
 

Heu pour moi, "supprimer les lignes qui apparaissent entre les balises" et "afficher toutes les lignes en dehors des balises", c'est la même chose. J'imagine que tu veux afficher seulement les lignes entre les balises. Dans ce cas tu peux faire :

sed -e '/<Directory>/,/<\/Directory>/!d'


C'est ce que tu as fais, mais avec des ' a lieu des ". Sinon bash crois que le !s désigne la dernière commande en "d..." de l'historique.


Message édité par matafan le 24-11-2005 à 00:58:43
n°755588
Dart Abitb​ol
Posté le 24-11-2005 à 14:24:28  profilanswer
 


Merci beaucoup!!!  
C'est tout à fait ça que je voulais faire....  (j'ai pas très bien compris pourkoi Bash interprétait la commande autrement , mais l'important est que ça fonctionne)
 
Juste encore une ptite question , à l'intérieur des balises je dois mettre un nom de répertoire , un truc du genre :  
 
<Directory "/home/nomcompte/truc/">
 
Dans le code je dois mettre le nom du repertoire dans une variable , j'ai donc un truc du genre :  
 

Code :
  1. sed -e '/<Directory \"$value\">/,/<\/Directory>/d' monfichier


 
Mais la encore j'ai un ptit problème avec le sed, je crois qu'il interprète chaque '/' dans la variable ....  
Comment faire pour lui faire comprendre que $value ne doit pas être interprété ?
 
Merci d'avance.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [Sed] Afficher plusieurs lignes de texte dans des balises

 

Sujets relatifs
ViewSourceWith pour Firefox : afficher la source d'une page avec NvuBases SQL à plusieurs endroits
Commande ls : afficher uniquement les nombresplusieurs ptit pb sous mandrake 10.1
Afficher mon adresse IPsuperposer plusieurs "canaux" mp3 en un?
[PROFTPD] Afficher un message au démarrage avec les quotas[Perl] créer une clé unique a partir d'un texte :Z
Pb installation de plusieurs OSparcourir un fichier ligne par ligne avec SED ?
Plus de sujets relatifs à : [Sed] Afficher plusieurs lignes de texte dans des balises


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR