|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||||
|
Membre habitué
![]() Fabrice Lille Inscription : février 2011 Messages : 137 ![]() |
Bonjour,
J'ai un fichier sous la forme suivante Code :
Donc avec un while do je récupère l'information EURO SAV ou BB mais je ne sais pas comment récupérer la valeur en face J'ai essayé avec ça mais cela n'est pas pratique car ça va me lire tout le fichier a après je bloque vu que mon script doit pouvoir traiter SAV comme BB comme EURO Code :
PS: mon script est en shell .sh Fabien |
||||
|
|
10
|
|
|
#2 |
|
Membre Expert
![]() ![]() budget et contrôle de gestion Inscription : décembre 2006 Messages : 895 ![]() |
Salut,
Regarde cut qui permet de séparer des colonne en fonction d'un séparateur donné. Par contre un nettoyage des espaces semble s'imposer avant. Voici un exemple à peaufiner bien sûr : Code :
sed "s/[ ]*/ /g" <le_fichier> | cut -f<numéro_du_champ>
__________________
Winnt C'est en Linuxant qu'on devient .... geek ![]() Intel Core i5 750 / 8 Go ram / Hdd 2 To / NVIDIA GeForce GTS 250 1Go sous Gentoo. Dual core E6300 / 2Go ram / Hdd 1 To / Ati 9800XT sous Debian Testing. Atom N330 / 4Go ram / Hdd 5To / intel GMA 950 sous Debian Testing Ici un article de présentation de la distribution Gentoo http://winnt.developpez.com/tutoriel...tation-gentoo/ |
|
|
10
|
|
|
#3 |
|
Membre habitué
![]() Fabrice Lille Inscription : février 2011 Messages : 137 ![]() |
il faut déjà que j'affiche la ligne en fonction de l'argument que j'ai passé en ligne de commande par exemple et je n'y arrive pas
|
|
|
10
|
|
|
#4 |
|
Expert Confirmé
![]() Inscription : janvier 2011 Messages : 970 ![]() |
Salut,
Ton fichier sera toujours aussi mal formaté ?
__________________
$ man woman Il n'y a pas de page de manuel pour woman. |
|
|
10
|
|
|
#5 |
|
Membre habitué
![]() Fabrice Lille Inscription : février 2011 Messages : 137 ![]() |
oui elas
|
|
|
10
|
|
|
#6 | ||
|
Expert Confirmé
![]() Inscription : janvier 2011 Messages : 970 ![]() |
Essaye avec ça :
Code :
__________________
$ man woman Il n'y a pas de page de manuel pour woman. |
||
|
|
10
|
|
|
#7 |
|
Membre habitué
![]() Fabrice Lille Inscription : février 2011 Messages : 137 ![]() |
putain trop fort ce que tu as fait la, sauf que moi ça me répond
EUROMEDIS 20.6KB EUROMEDIS 137KB 0.00 B 0.00 B 16.0KB 48.3KB C'est une erreur de ma part car devant SAV et BB il y a des espace et je suppose que cela joue? |
|
|
01
|
|
|
#8 | ||
|
Expert Confirmé
![]() Inscription : janvier 2011 Messages : 970 ![]() |
Des espaces devant quoi ???
Code :
__________________
$ man woman Il n'y a pas de page de manuel pour woman. |
||
|
|
10
|
|
|
#9 | ||
|
Membre habitué
![]() Fabrice Lille Inscription : février 2011 Messages : 137 ![]() |
dans mon fichier d'origine
Code :
|
||
|
|
10
|
|
|
#10 | ||
|
Expert Confirmé
![]() Inscription : janvier 2011 Messages : 970 ![]() |
Code :
__________________
$ man woman Il n'y a pas de page de manuel pour woman. |
||
|
|
10
|
|
|
#11 |
|
Membre habitué
![]() Fabrice Lille Inscription : février 2011 Messages : 137 ![]() |
Merci beaucoup, si tu as 5 minutes j'aimerai bien comprendre la commande que tu m'as donné s'il te plait
En tout cas merci tu m'as bien aidé |
|
|
10
|
|
|
#12 |
|
Expert Confirmé
![]() Inscription : janvier 2011 Messages : 970 ![]() |
-n
Affichage sur demande avec l'option "p" (voir plus loin) /EURO\|SAV\|BB/ On recherche que les lignes matchant EURO ou SAV ou BB { Regroupement de commandes entre parenthèses qui ne s'appliqueront qu'aux motifs trouvés s/ La commande de substitution * Un espace, plusieurs ou pas du tout \([^ ]*\) 1ère sous-expression qui englobe tout jusqu'à rencontrer un espace (donc on s'arrête avant le 1er espace rencontré), autrement dit un des trois motifs recherchés .*bps * Regex qui matche un espace, puis tout jusqu'au dernier "bps" suivit d'au moins un espace ou plusieurs. \([^ ]* .\) 2nd sous-expression qui matche tout jusqu'à rencontrer un espace suivit d'un autre espace et de n'importe quel caractère (espace compris). Donc ici on matche tes valeurs KB compris et un éventuel espace suivit d'un B. .* Le reste de la ligne /\1 \2/ Partie droite du remplacement. Les références arrières faisant référence chacune aux deux sous-expressions précédentes qu'on replace seules sur la sortie p On imprime sur la sortie standard nos deux références arrières trouvées. }' Fin du regroupement de commandes
__________________
$ man woman Il n'y a pas de page de manuel pour woman. |
|
|
10
|
|
|
#13 |
|
Membre habitué
![]() Fabrice Lille Inscription : février 2011 Messages : 137 ![]() |
Merci pour tout
|
|
|
00
|
|
|
#14 | ||||
|
Membre habitué
![]() Fabrice Lille Inscription : février 2011 Messages : 137 ![]() |
Re
J'ai un simple fichier sous cette forme Code :
Code :
Voila Merci de votre aide |
||||
|
|
00
|
|
|
#15 | ||
|
Expert Confirmé
![]() Inscription : janvier 2011 Messages : 970 ![]() |
Je ne suis pas sûr de comprendre ce que tu veux faire exactement...
En attendant un petit exemple : Code :
__________________
$ man woman Il n'y a pas de page de manuel pour woman. |
||
|
|
10
|
|
|
#16 | ||
|
Expert Confirmé Sénior
![]() Frédéric Ingénieur développement logiciels Inscription : février 2006 Messages : 3 055 ![]() |
Salut
Bon, puisqu'on en est à se montrer "qui a la plus longue" en matière de script shell, je m'y mets aussi ![]() Code bash :
__________________
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche. Tout ce qu'un individu reçoit sans rien faire pour l'obtenir, un autre individu a dû travailler pour le produire sans en tirer profit. Tout Pouvoir ne peut distribuer aux uns que ce qu'il a préalablement confisqué à d'autres car on n'accroît pas les biens en les divisant. Quand la moitié d'un peuple croit qu'il ne sert à rien de faire des efforts car l'autre moitié les fera pour elle, et quand cette dernière moitié se dit qu'il ne sert à rien d'en faire car ils bénéficieront à d'autres, cela s'appelle le déclin et la fin d'une nation. Dr. Adrian Rogers, 1931 |
||
|
|
10
|
|
|
#17 |
|
Membre habitué
![]() Fabrice Lille Inscription : février 2011 Messages : 137 ![]() |
Merci Sve@r et zipe31
Je suis parti sur le script a Sve@r qui me semble plus facile a comprendre pour moi, mais il y a t-il un moyen de garder les valeurs val dans une variable pour s'en resservir plus tard?. Car moi j'ai besoin de valeurs que je récupéré pour les multiplier après et les afficher a l’écran Donc en gros je récupère mon 5.52 et en fonction de son unité je le multiplie, de même pour 79.6 et je ne vois pas trop comment faire avec la boucle do que vous avez mis dans le programme |
|
|
00
|
|
|
#18 | |
|
Expert Confirmé Sénior
![]() Frédéric Ingénieur développement logiciels Inscription : février 2006 Messages : 3 055 ![]() |
Citation:
Ben quand-même !!! Tu as la valeur, tu as l'unité. Et tu as dit que tu savais te servir d'un case. Donc ben au lieu d'afficher les valeurs comme je le fais ben tu mets un case et tu les multiplies quoi !!!
__________________
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche. Tout ce qu'un individu reçoit sans rien faire pour l'obtenir, un autre individu a dû travailler pour le produire sans en tirer profit. Tout Pouvoir ne peut distribuer aux uns que ce qu'il a préalablement confisqué à d'autres car on n'accroît pas les biens en les divisant. Quand la moitié d'un peuple croit qu'il ne sert à rien de faire des efforts car l'autre moitié les fera pour elle, et quand cette dernière moitié se dit qu'il ne sert à rien d'en faire car ils bénéficieront à d'autres, cela s'appelle le déclin et la fin d'une nation. Dr. Adrian Rogers, 1931 |
|
|
|
00
|
|
|
#19 |
|
Membre habitué
![]() Fabrice Lille Inscription : février 2011 Messages : 137 ![]() |
Pour répondre a ta question, je veux que au final lorsque je fais un ./script.sh
il me répond Code :
OK outBPS=17726 inBPS=99887 |'outBPS'=17726 'inBPS'=99887 Code :
echo "OK outBPS=$out inBPS=$in |'outBPS'=$out 'inBPS'=$in" Ensuite j'ai un soucis ou niveau de la multiplication car avec les chiffres a virgule j'ai une erreur, et je ne vois pas trop comment faire. J'ai trouvé pour ma multiplication Par contre j'ai toujours le premier probleme |
|
|
00
|
|
|
#20 | ||
|
Expert Confirmé
![]() Inscription : janvier 2011 Messages : 970 ![]() |
Et si tu nous donnais tous les détails ???
Comment à partir de : Code :
Code :
OK outBPS=17726 inBPS=99887 |'outBPS'=17726 'inBPS'=99887
__________________
$ man woman Il n'y a pas de page de manuel pour woman. |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com