#1 Le 27/10/2015, à 16:36
- musha76
Rechercher un nombre à partir d'une chaîne de caractère
Bonjour à tous,
Voici mon problème, j'essaie de récupérer une valeur à partir d'une chaîne de caractère.
Voici cette chaîne :
TelServiceReturn result sessionsStatistics snapshotPbxLink statistics pbxLink TATA /pbxLink sessionsCount 502 /sessionsCount readyAvailableAgentsCount 433 /readyAvailableAgentsCount callConnectedAgentsCount 1 /callConnectedAgentsCount /statistics statistics pbxLink TOTO /pbxLink sessionsCount 53 /sessionsCount
L'objectif étant de récupérer les valeurs 502 et 53
Je peux récupérer n'importe quel caractère avec un simple :
awk -F " " '{ print $10 }'
Le problème étant que cette chaîne de caractère ne possède pas une valeur fixe... d'autres champs peuvent si ajouter.
Donc lorsque je veux récupérer la valeur 502, et qu'un nouveau champ s’implémente, je ne récupère pas la bonne donnée avec un
print $10
.
J'aimerai donc savoir s'il est possible de récupérer cette valeur (502 et/ou 53) en comptant à partir de pbxLink, car la longueur entre pbxLink et la valeur (502/53) sera toujours la même.
L'utilisation d'un awk me parait être une bonne solution, mais je ne vois pas comme l'utiliser.
Merci par avance!
Hors ligne
#2 Le 27/10/2015, à 16:58
- pingouinux
Re : Rechercher un nombre à partir d'une chaîne de caractère
Bonjour,
Ceci ?
awk '{for(i=1;i<=NF;i++){if($i=="pbxLink")print $(i+4)}}' <<<"$chaine"
Hors ligne
#3 Le 28/10/2015, à 09:14
- credenhill
Re : Rechercher un nombre à partir d'une chaîne de caractère
hello
$ awk -v RS=" pbxLink" '$4 ~ /^[0-9]/ {print $4}' <<<"$var"
502
53
Hors ligne
#4 Le 28/10/2015, à 10:39
- musha76
Re : Rechercher un nombre à partir d'une chaîne de caractère
Merci pour vos réponses !
Les deux méthodes fonctionnent parfaitement !!
Merci encore d'aider les personnes !
Dernière modification par musha76 (Le 28/10/2015, à 10:40)
Hors ligne