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 10/08/2006, 16h14   #1
Candidat au titre de Membre du Club
 
Inscription : mars 2005
Messages : 135
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 135
Points : 14
Points : 14
Envoyer un message via MSN à ujoodha
Par défaut Extraction de données

Bonjour,

Je voudrais faire une fonction qui m'extrait un mot et valeur avec un grep et un cut mais je me noie la dedans c'est pour cela que je vous demande de l'aide

En fait une ligne qui se compose de la maniere suivante :
clef1=val1 clef2=val2 clef3=val3 ....

Par exemple :
Code :
1
2
 
<Document CustomerCtrNum="FR0000018050" CustomerCptNum="001" DocumentDate="20/01/2006" DocumentNum="FR278">
Moi ce que je voudrai c'est extraire la valeur en fonction du nom et non pas de la position ce que le 'cut' fait.

Merci de vos réponse
ujoodha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2006, 16h41   #2
Modérateur
 
Avatar de al1_24
 
Homme Alain
Ingénieur d'études décisionnel
Inscription : mai 2002
Messages : 4 446
Détails du profil
Informations personnelles :
Nom : Homme Alain
Âge : 51
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études décisionnel
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 4 446
Points : 7 546
Points : 7 546
  1. Découpe ta ligne en sections nom=valeur
  2. Sélectionne ensuite la section correspondant à ton identifiant
  3. Extrait la valeur correspondante
Code :
1
2
echo ${maligne} | cut -d' ' -f1- --output-delimiter='
' | grep "${monid}=" | cut -d'=' -f2
Tu dois pouvoir découper ta ligne avec sed qui sera peut être plus efficace...
__________________
Modérateur Langage SQL
Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
N'oubliez pas le bouton et pensez aux balises [code]
Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
al1_24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2006, 16h53   #3
Candidat au titre de Membre du Club
 
Inscription : mars 2005
Messages : 135
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 135
Points : 14
Points : 14
Envoyer un message via MSN à ujoodha
output delimiter c 'est quoi
ujoodha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2006, 16h55   #4
Modérateur
 
Avatar de al1_24
 
Homme Alain
Ingénieur d'études décisionnel
Inscription : mai 2002
Messages : 4 446
Détails du profil
Informations personnelles :
Nom : Homme Alain
Âge : 51
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études décisionnel
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 4 446
Points : 7 546
Points : 7 546
Citation:
Envoyé par ujoodha
output delimiter c 'est quoi
Le séparateur de champs en sortie...donc ici un saut de ligne.
C'est pourquoi un SED avec remplacement des espaces par un saut de ligne conviendrait tout aussi bien
__________________
Modérateur Langage SQL
Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
N'oubliez pas le bouton et pensez aux balises [code]
Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
al1_24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2006, 16h57   #5
Candidat au titre de Membre du Club
 
Inscription : mars 2005
Messages : 135
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 135
Points : 14
Points : 14
Envoyer un message via MSN à ujoodha
Mais je veux extraire la valeur d'une clef car je ne la connais pas
par aillieurs l'ordre si je veux extraire la valeur de CustomerCptNum il faut aussi en compte que l'ordre n'est pas fixe

D' ou mon probleme
ujoodha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2006, 17h04   #6
Candidat au titre de Membre du Club
 
Inscription : mars 2005
Messages : 135
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 135
Points : 14
Points : 14
Envoyer un message via MSN à ujoodha
Et je dois ecrire
Code :
1
2
3
 
-f1- --output-delimiter='
'
comme tel avec le retour a la ligne

Ma question est un peu conne mais c'est par ce que je ne connais pas du tout cette option
ujoodha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2006, 17h11   #7
Modérateur
 
Avatar de al1_24
 
Homme Alain
Ingénieur d'études décisionnel
Inscription : mai 2002
Messages : 4 446
Détails du profil
Informations personnelles :
Nom : Homme Alain
Âge : 51
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études décisionnel
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 4 446
Points : 7 546
Points : 7 546
le temps que je remette le nez dans sed :
Code :
echo ${maligne} | sed -e's/ /\n/g' | grep "${monid}=" | cut -d'=' -f2
__________________
Modérateur Langage SQL
Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
N'oubliez pas le bouton et pensez aux balises [code]
Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
al1_24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2006, 17h25   #8
Candidat au titre de Membre du Club
 
Inscription : mars 2005
Messages : 135
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 135
Points : 14
Points : 14
Envoyer un message via MSN à ujoodha
J'ai teste ce que tu m'as donné mais ca ne marche pas en fait il remplace les espace par des n.
On dirait qu'il ne reconnait le retour chariot

Cependant l'idée est bonne
ujoodha est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h01.


 
 
 
 
Partenaires

Hébergement Web