|
|
|
|
Salut,
Avant de te donner une solution, 2 ou 3 petites choses... Déjà pour récupérer le numéro de ligne, un simple : grep -n " *<xsd:complexType name=\"Arbre\">" fichier.xsdsuffit amplement. Ensuite, ta vérification du code retour ne sert à rien dans la mesure ou tu fais un "echo" avant et par conséquent, que la variable soit pleine ou vide, le "echo" se fera quand même et c'est le code retour de la commande "echo" qui sera testé et retournera toujours "vrai" ! Ceci dit, voilà une solution à ton problème : sed -n '/<xsd:complexType name="Arbre">/{n;n;s/.*="\([^ "]*\).*/\1/p}' fichier.xsd
Branche;-))
JP - Éleveur de pingouins - Faites un geste pour l'environnement, fermez vos fenêtres et adoptez un manchot.
|
|
Pour ce qui concerne SED, je te renvoie vers la FAQ : SED - The Stream EDitor - Part I
Avant d'insérer la commande dans un script, vérifie quelle marche bien déjà en ligne de commande...
sed -n '
"-n" demande d'affichage que sur demande avec la commande "p"
/<xsd:complexType/
le motif à rechercher
{
Regroupement de commande à appliquer si le motif est trouvé
n
Demande l'ajout de la ligne suivante dans l'espace de travail en remplacement de la ligne courante
;
Séparateur de commande
n;
idem que précédemment
s/.../.../
Commande de substitution
.*="\([^ "]*\).*
Expression régulière à diviser en 3 parties
.*="
Grace à la gourmandise des expressions régulières, on récupère tout ce qui se trouve avant le dernier mot sur la ligne précédé d'un signe égale et suivi d'un guillemet
\([^ "]*\)
Sous-expression. Cette partie est encadrée par des parenthèses (elles même protégées par des anti-slashs) pour pouvoir être réutilisée dasn la partie de remplacement. Elle matche donc tout ce qui suivait le signe égale et le guillemet précédent, jusqu'au prochain guillemet qui délimitera sa portée et ne devra pas être pris
.*
Le reste de la ligne
\1
Le \1 (référence arrière) fait donc référence à la sous-expression matchée précédemment
p
La commande d'affichage. On affiche alors la référence à "\1"
;q
Et on demande de quitter immédiatement le script sans chercher d'autres lignes (commande "q" (quit))
}'
Fin du groupement de commandes
;-))
JP - Éleveur de pingouins -
Faites un geste pour l'environnement, fermez vos fenêtres et adoptez un manchot.
|
sed -n '/<xsd:complexType name="Feuille1">/,/<\/xsd:complexType>/{//d;s/[^ ]* //;s/ /\n/g;s/\/>$//;p}'oused -n '
/<xsd:complexType name="Feuille1">/,/<\/xsd:complexType>/{
//d
s/[^ ]*//
s/ [^=]*=//g
s/""/\n/g
s/\/>$//
s/^"\|"$//g
p
}' fichier
Le 1er renvoie : name="nom" type="xsd:string" use="required" name="numero" type="xsd:int" use="required" Le second : nom xsd:string required numero xsd:int required;-)) JP - Éleveur de pingouins - Faites un geste pour l'environnement, fermez vos fenêtres et adoptez un manchot.
|
| 26/02 16h52 | Sed - Introduction à SED - Part III | Sed |
| 19/09 14h12 | Comment lire un fichier RMVB | Vidéo |
| 21/12 00h16 | [Python] Lire et écrire des fichiers CSV | Python |
| 15/02 16h55 | [Gravure] Graver ou lire un fichier .BIN / .CUE | Gravure |
| 22/05 11h52 | [Gravure] Graver ou lire un fichier .IMG / .CCD / .SUB | Gravure |
| 12/08 12h59 | Logiciels pour lire fichiers en php | 9 |
| 22/07 19h17 | Problème pour lire fichier PPS | 1 |
| 09/07 20h12 | Comment lire fichiers NDS avec vista ?? | 19 |
| 28/06 23h03 | Lire fichier .ra sur MacOS | 3 |
| 17/06 15h54 | Lire fichiers latex *.tex sous Windows | 2 |
![]() | IsoBuster - IsoBuster est un outil de récupération de CD, DVD, HD-DVD et BD prenant en charge tous les formats et tous leurs système de... | Catégorie: Gravure Licence: Freeware/gratuit |
![]() | ModPlug Player - MODPlug est un lecteur permettant de lire des fichiers MOD, c'est-à-dire des pistes de séquenceurs (trackers), mélant des... | Catégorie: Lecteurs audio Licence: Freeware/gratuit |
![]() | Switch Sound Format Converter - Switchest un convertisseur de formats audio pour Windows ou Mac, capable de convertir des fichiers audio à partir de... | Catégorie: Conversion audio Licence: Freeware/gratuit |
![]() | DS Monkey Audio - Filtre APE - Le format MonkeysAudio (extension *.ape) est un format de compression audio lossless (sans pertes) permettant de réduire la... | Catégorie: Plugins audio Licence: Freeware/gratuit |
![]() | Lapin malin : J'apprends | Catégorie: Jeu vidéo PC | |
![]() | La ferme en délire | Catégorie: Jeu vidéo PC | 4.95 € Amazon.fr |
![]() | J'Aime Lire Bienvenue Au | Catégorie: Jeu vidéo PC |