Parcour fichier et arret a la 1ere occurence
Résolu
evita8
Messages postés
32
Date d'inscription
Statut
Membre
Dernière intervention
-
evita8 Messages postés 32 Date d'inscription Statut Membre Dernière intervention -
evita8 Messages postés 32 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'essaye de parcourir un fichier XSD ligne par ligne et de récupérer le nom de l'élément racine.
Dans le fichier XSD, voici la déclaration de l'élément racine :
<xsd:element name="Blabla" type="Blabla"/>
Que pensez vous de ma méthode :
- Parcourt du fichier avec une boucle while
- Test de la ligne en cour : verifier si elle est du type <xsd:element name="Blabla" type="Blabla"/>
- Arrêt a la premiere ocurence rencontrée (puisqu'il peut y avoir d'autre lignes commençant par "<xsd:element")
Mon script :
while read line
do
if [ "grep '^<xsd:element'" ] ; then
echo "$line"
else
echo "pas trouve"
fi
done < fichier.xsd
Problème : lors de l'execution le script recrache toutes les lignes du fichier XSD et non pas juste celles qui commencent par "<xsd:element"
Et comment faire pour arrêter la boucle des qu'une ligne contient "<xsd:element" ?
Merci !
J'essaye de parcourir un fichier XSD ligne par ligne et de récupérer le nom de l'élément racine.
Dans le fichier XSD, voici la déclaration de l'élément racine :
<xsd:element name="Blabla" type="Blabla"/>
Que pensez vous de ma méthode :
- Parcourt du fichier avec une boucle while
- Test de la ligne en cour : verifier si elle est du type <xsd:element name="Blabla" type="Blabla"/>
- Arrêt a la premiere ocurence rencontrée (puisqu'il peut y avoir d'autre lignes commençant par "<xsd:element")
Mon script :
while read line
do
if [ "grep '^<xsd:element'" ] ; then
echo "$line"
else
echo "pas trouve"
fi
done < fichier.xsd
Problème : lors de l'execution le script recrache toutes les lignes du fichier XSD et non pas juste celles qui commencent par "<xsd:element"
Et comment faire pour arrêter la boucle des qu'une ligne contient "<xsd:element" ?
Merci !
A voir également:
- Parcour fichier et arret a la 1ere occurence
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
4 réponses
Hello !
La ligne de commande que tu m'as donné la dernière fois (recherche de la premiere occurence d'un motif dans un fichier : grep -m 1 " ^<xsd:element" $1) fonctionne trés bien chez moi mais sur l'odinateur de l'ecole je lis une erreure :
grep: option invalide -- m
Aurai tu une autre solution a mon problème ?
Merci !
La ligne de commande que tu m'as donné la dernière fois (recherche de la premiere occurence d'un motif dans un fichier : grep -m 1 " ^<xsd:element" $1) fonctionne trés bien chez moi mais sur l'odinateur de l'ecole je lis une erreure :
grep: option invalide -- m
Aurai tu une autre solution a mon problème ?
Merci !
Je n'arrive pas à recuperer ma ligne... Je ne vois pas du tout le problème !
pourtant la fonction "-n" existe sur cette version de unix (j'ai verifié dans le man)
ligne=$(sed -n '/<xsd:element/{p;q}' data/$2)
Le message d'erreur qu'il me renvoie :
sed: -e expression #1, char 19: Extra characters after command
pourtant la fonction "-n" existe sur cette version de unix (j'ai verifié dans le man)
ligne=$(sed -n '/<xsd:element/{p;q}' data/$2)
Le message d'erreur qu'il me renvoie :
sed: -e expression #1, char 19: Extra characters after command
Commence par enlever le "q" à la fin et vois si ça marche comme ça.
Si ça marche, essaie :
Si ça marche, essaie :
sed -n '0,/<xsd:element/{/<xsd:element/p}' data/fichier.xsd;-)
<xsd:element name="Bibliotheque" type="Bibliotheque"/>
De cette ligne, je voudrai recuperer le nom Bibliotheque
Ma ligne (qui marchait chez moi mais ne fonctionne plus a l'ecole...) :
RACINE=$(cut -f2 -d '"' <<< $ligne) ne fonctionne plus
Il me renvoie :
tp4.sh: command substitution: line 1: syntax error near unexpected token `<<<'
tp4.sh: command substitution: line 1: `cut -f2 -d '"' <<< $ligne'
J'ai aussi essayé :
$ligne | cut -f2 -d '"'
Mais ça ne marche pas non plus
need help!
De cette ligne, je voudrai recuperer le nom Bibliotheque
Ma ligne (qui marchait chez moi mais ne fonctionne plus a l'ecole...) :
RACINE=$(cut -f2 -d '"' <<< $ligne) ne fonctionne plus
Il me renvoie :
tp4.sh: command substitution: line 1: syntax error near unexpected token `<<<'
tp4.sh: command substitution: line 1: `cut -f2 -d '"' <<< $ligne'
J'ai aussi essayé :
$ligne | cut -f2 -d '"'
Mais ça ne marche pas non plus
need help!
J'ai mis la ligne trouvée dans la variable $ligne
Pour réccupérer le "Blabla", j'ai rajouté :
var=$(cut -f2 -d '"' <<< $ligne)
echo $var me donne :
var=Blabla
Merci !