IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Découper un nombre decimal


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 5
    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 :
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Membre émérite
    Avatar de nyal
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    622
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2002
    Messages : 622
    Par défaut
    Bonjour,

    Essaye de remplacer cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    VAR_2=`echo "${HEADER}" | cut -d ';' -f4 | sed "s/'.'/','/g" | tr -d '\r\n'`
    par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 5
    Par défaut
    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.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. compl. nombre decimal dans une requete insert
    Par loic72 dans le forum Access
    Réponses: 2
    Dernier message: 31/05/2006, 11h43
  2. [type] a utiliser pour un nombre decimal
    Par ozzmax dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 26/05/2006, 18h34
  3. [C#]saisir que un nombre decimal dans 1 textBox
    Par mcay dans le forum Windows Forms
    Réponses: 25
    Dernier message: 04/11/2005, 15h43
  4. [ABAP] Convertir nombre decimal en binaire
    Par danael dans le forum SAP
    Réponses: 3
    Dernier message: 04/04/2005, 12h17
  5. definir un nombre decimal sur 2 numero max apres la vergule
    Par nil dans le forum Bases de données
    Réponses: 5
    Dernier message: 25/02/2004, 21h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo