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 :

Conversion chaine de caractères en numérique


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 148
    Par défaut Conversion chaine de caractères en numérique
    Bonjour,

    Pourrai je faire la conversion d'une chaine de caractères en un numerique
    exemple :

    0000102031 en 1020.31


    Salutations.

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Par défaut
    Bonjour.

    Bash est très pauvre dès qu'il s'agit de faire des opérations mathématiques sur des réels. Il faut faire appel à la librairie bc.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo 'scale=2; 0000102031 / 100' | bc
    en hsh, qui supporte l'arithmétique des nombres flottants, c'est plus simple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    printf '%.2f' $((0000102031/100))

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 148
    Par défaut conversion d'une chaine de caractères en numerique
    Bonjour,

    Le truc est que dans mon script, je récupère des informations avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     grep "^[0].*R *$" final_file  | awk  ' { print "001,"substr($0,200,10)",,"substr($0/100,156,13)"."substr($0,169,2)
    où le fichier final_file contient des lignes de la forme :

    0000010607100100634030010066338 xxxxx xxxxx xxxxxxxxxxxxxxxxxxxxxxx
    0000000120203012007061420070522R F BBB BACS 1000003024 001du2204au2105 07ECH1106N FACT9149935
    le montant est ce qui est gras et souligné

    pourrai je utiliser ce que tu m'as donner pour extraire cette l'information ?

    Merci d'avance

  4. #4
    Modérateur
    Avatar de ggnore
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Par défaut
    tu peux utiliser la syntaxe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ${ligne:$position:$longueur}
    pour extraire une sous chaîne sans passer par awk.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $bla=123456789
    $echo ${bla:1:3}
    234
    Attention, c'est en bash.
    Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 148
    Par défaut Conversion chaine de caractères en numérique
    Bonjour;

    Effectivement ceci marche, mais le hic c'est que le nombre de 0 à gauche n'est pas fixe, et je peux pas connaitre la position ou commence le montant.

    Salutations.

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Par défaut
    Donnes-nous plusieurs lignes typiques et représentatives de toutes les formes possibles. Sinon, on risque de tourner en rond.

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

Discussions similaires

  1. conversion chaine de caractères en numérique
    Par mainak29 dans le forum MATLAB
    Réponses: 6
    Dernier message: 04/01/2012, 17h54
  2. Conversion chaîne de caractère/valeur numérique
    Par julieng31 dans le forum Débuter
    Réponses: 5
    Dernier message: 03/06/2009, 16h15
  3. Conversion chaine de caractères en nombre décimal
    Par lodan dans le forum Langage
    Réponses: 3
    Dernier message: 02/04/2009, 19h11
  4. Conversion chaine de caractère => entier (ordre des caractères primordial car ADN)
    Par ctobini dans le forum Algorithmes et structures de données
    Réponses: 10
    Dernier message: 24/09/2007, 11h20
  5. conversion chaine de caractères --> HTML
    Par captainflex dans le forum Ruby on Rails
    Réponses: 9
    Dernier message: 17/06/2007, 21h37

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