Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/05/2007, 14h04   #1
Invité de passage
 
Inscription : juin 2005
Messages : 14
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 14
Points : 2
Points : 2
Par défaut Récupération de lignes entre 2 motifs

Bonjour,

Voici mon problème : je souhaite récupérer un certain nombre de ligne d'un fichier qui sont englobé entre 2 motifs. Ex de fichier :
<toto>
32
56
</toto>
tata
tutu
<toto>
689
3279
</toto>

J'ai essayé de trouvé une option avec les fonctions sed et grep, mais je n'y arrive pas. Ce que je voudrais, c'est récupérer les valeur entre <toto> et </toto>.

Merci de votre aide
ajsd0208 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2007, 15h06   #2
Expert Confirmé Sénior
 
Avatar de frp31
 
Homme francois
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 3 546
Détails du profil
Informations personnelles :
Nom : Homme francois
Âge : 35
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juillet 2006
Messages : 3 546
Points : 7 776
Points : 7 776
commence par comprendre le pipage de commandes par exemple pour eliminer les separateurs (sans tri) :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
TEST-FRSP:~ # cd /tmp
TEST-FRSP:/tmp # cat > toto
<toto>
 32
 56
 </toto>
 tata
 tutu
 <toto>
 689
 3279
 </toto>
TEST-FRSP:/tmp # cat toto | cut -d">" -f2 | cut -d"<" -f1
 
 32
 56
 
 tata
 tutu
 
 689
 3279
 
TEST-FRSP:/tmp # rm toto
TEST-FRSP:/tmp #
maintenant a toi d'adapter a ton cas : en triant que ce qui est entre <toto> et </toto>
frp31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2007, 16h15   #3
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 306
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 306
Points : 8 590
Points : 8 590
Je ne suis pas sûr que ce soit la bonne façon de faire. sed te permet justement d'identifier des lignes entre des delimiteurs :

Code :
sed -n '/<toto>/,/<\/toto>/ p' fichier
Le pb avec ça c'est que les balises sont toujours là, donc il faut les virer :

Code :
sed -n '/<toto>/,/<\/toto>/ p' fichier | grep -vxe "<toto>" -e "</toto>"
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h12.


 
 
 
 
Partenaires

Hébergement Web