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 17/07/2006, 10h47   #1
Invité de passage
 
Inscription : juillet 2006
Messages : 5
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 5
Points : 4
Points : 4
Par défaut Découper un nombre decimal

Bonjour,

J'ai un petit souci assez bloquant depuis qq jours ^^.

Je resume le pb en esperant qu'il y a un sauveur pr m'aider.

Contexte :
Le but est de decouper l'entete d'un fichiers et de pouvoir utiliser les variables de l'entete pour le stocker dans une table.
Bref le pb est que j'ai un champs decimal (ex : 86.25) qui ne peut etre reconnu qu'en format (ex : 86,25)

ex d'entete :
Citation:
Champs1;Champs2;Champs3;Champs4;Champs5

Champs1 = toto.titi
Champs2 = date du jour (dd/mm/yyyy hh:mm)
Champs3 = grosminet
Champs4 = 86.25 (montant)
Champs5 = 865 (toujours entier)
J'ai essaye avec ces lignes de commandes mais ca me retourne toujours le montant avec un '.'

Code :
1
2
3
4
5
6
HEADER = Champs1;Champs2;Champs3;Champs4;Champs5
 
VAR_1=`echo "${HEADER}" | cut -d ';' -f1-3,5 | sed "s/;/','/g" | tr -d '\r\n'`
VAR_2=`echo "${HEADER}" | cut -d ';' -f4 | sed "s/'.'/','/g" | tr -d '\r\n'`
 
VAR = $VAR_1 | $VAR_2
Merci d'avance
dasousou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2006, 11h16   #2
Rédacteur
 
Avatar de nyal
 
Inscription : septembre 2002
Messages : 611
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2002
Messages : 611
Points : 811
Points : 811
Envoyer un message via MSN à nyal
Bonjour,

Essaye de remplacer cela:
Code :
1
2
 
VAR_2=`echo "${HEADER}" | cut -d ';' -f4 | sed "s/'.'/','/g" | tr -d '\r\n'`
par:
Code :
1
2
 
VAR_2=`echo "${HEADER}" | cut -d ';' -f4 | sed "s/\./,/g" | tr -d '\r\n'`
Pour sed, le caractère ".' a une signification particulière. Il signifie: n'importe quel caractère (à part retour à la ligne)
Sinon je pense que tu t'y prends mal. J'ai du mal à comprendre ce que tu veux faire. Il faut savoir que bash, zsh intègre des systèmes de tableaux. Tu devrais les utiliser je pense.
nyal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2006, 13h51   #3
Invité de passage
 
Inscription : juillet 2006
Messages : 5
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 5
Points : 4
Points : 4
Merci ca marche!! ^^

En fait, je reutilise les variables de l'entete avec sqlplus pr les integrer ds la table cible qui me permettra plus tard de tester l'integrite du fichier recu.
dasousou 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 04h45.


 
 
 
 
Partenaires

Hébergement Web