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.
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:
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 :
Citation:
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
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.
chaine de caractères en numérique
Bonjour,
Ci-joint un echantillon de lignes en question :
0000030607100400142410037951162 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 0000000120205042007062620070605R.F.GSM.OTAN°1000015641+001du0805au0706/07ECH2606N.FACT9184832
0000040607100400101415102251141 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 0000000001020042007062620070605R.F.GSM.OTAN°1000045820+001du0805au0706/07ECH2606N.FACT9153642
0000050607102700707010220300101 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 0000000002020272007062620070605R.F.GSM.OTAN°1000542479+001du0805au0706/07ECH2606N.FACT9303488
0000060607100200082820820573567 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 0000000120202022007062620070605R.F.GSM.OTAN°1002425015+001du0805au0706/07ECH2606N.FACT9130555
0000070607102100008115000071447 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 0000000120203212007062620070605R.F.GSM.OTAN°1002575080+001du0805au0706/07ECH2606N.FACT9142089
0000080607100500111415000013029 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 0000000001020052007062620070605R.F.GSM.OTAN°1004003322+001du0805au0706/07ECH2606N.FACT9233434
0000090607102700707010147400139 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 0000000120202272007062620070605R.F.GSM.OTAN°1003089445+001du0805au0706/07ECH2606N.FACT9303489
0000100607102700795010031000104 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 0000000120203272007062620070605R.F.GSM.OTAN°1003358048+001du0805au0706/07ECH2606N.FACT9303490
0000110607102700707010283800181 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 0000000120201272007062620070605R.F.GSM.OTAN°1003825346+001du0805au0706/07ECH2606N.FACT9303491
0000120607102700707010280100116 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 0000000001020272007062620070605R.F.GSM.OTAN°1008214891+001du0805au0706/07ECH2606N.FACT9079384
0000130607102100007113000012686 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 0000000003020212007062620070605R.F.GSM.OTAN°1010584225+001du0805au0706/07ECH2606N.FACT9219325
0000140607102605301000045450080 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 0000000120203262007062620070605R.F.GSM.OTAN°1011543345+001du0805au0706/07ECH2606N.FACT9220305
0000150607102100005115000307404 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 0000000002020212007062620070605R.F.GSM.OTAN°1012019059+001du0805au0706/07ECH2606N.FACT9136190
où ce qui est en gras représente le montant que je veux mettre sous forme numérique.
Salutations.
chaine de caractères en numérique
Bonjour,
Oui le tout est sur une seule ligne.
J'ai utilisé awk avec substr mais le résultat n'est pas ce que je voulais.
Salutations.
Conversion chaine de caractères en numérique
Bonjour,
En l'executant sur le champ seul ça marche.
J'aimerai bien comment l'inscruter au milieu comme le montre ma commande suivante :
grep "^[0].*R *$" old_file | awk ' { print "001,"substr($0,200,10)",,"ICI",AAA,ITS,TABS,"substr($0,242,12)","substr($0,15
6,13)"."substr($0,169,2) }' >> new_file de tel sorte a avoir comme sortie une ligne du genre :
001,xxxxxxxxxx,,120203.01,20070709,XXX,XXXX,9149935,120203.01
où ce qui est en rouge la formule que tu m'as donné.
Merci d'avance.
chaine de caractères en numérique
l'extrait donné n'est pas celui de mon old_file.
j'ai pu le faire mais le résultat n'est pas sur une seul ligne comme je le voulais.
j'ai utiliser cette ligne de commande :
Code:
1 2
|
grep "^[0].*R *$" input_file | awk ' { printf "%s" "001,"substr($0,200,10)",," ; printf "%2.2f", substr($0,156,15)/100 ; print ",AAA,BBB,CCCC,"substr($0,242,12)"," ; printf "%2.2f\n", substr($0,156,15)/100 }' >> output_file. |
j'ai lancer cette combinaison sur des lignes du genre transmi ultérieurement.
chaine de caractères en numérique
je peux te donner ya aucun problème :
0000010607100100634030010066338 XXXXX XXXXX 36 RUE XXXXXXXXXXXXXXXX
0000000120203012007061420070522R F XXX XXXX 1000003024 001du2204au2105 07ECH1106N FACT9149935
R
0000020607100100617030010071941 XXXXXXXXXX XXXXXX 4 RUE XXXXXXXXXXXXXXXXXXX
0000000003020012007061420070522R F GSM OTAN 1000012664 001du2204au2105 07ECH1106N FACT9184652
R
0000060607100200082820820573567 XXXXXXXX XXXXXX AVENUE XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
DES 0000000120202022007061420070522R F GSM OTAN 1002425015 001du2204au2105 07ECH1106N FACT9130555
202
0000260607100200082820826078220 XXXX XXXXXXXX XXXXXXXXXXXXXX
0000000120002022007061420070522R F GSM OTAN 1004000012 001du2204au2105 07ECH1106N FACT9290703
002
0000270607100200012120325768947 XXXXXX XXXXXX 294 Bd XXXXXXXXXXXXXXX
0000000002020022007061420070522R F GSM OTAN 1004482779 001du2204au2105 07ECH1106N FACT9290712
R
J'espère que cela vous aidera.
Merci d'avance.
chaine de caractères en numérique
j'ai donner un exemple plus haut je crois, et j'ai mis en gras le format de la donnée que je veux avoir.
Merci.
chaine de caractères en numérique
oui vous m'avez compris, seulement la ligne en sortie est de la forme :
001,xxxxxxxxxx,,120205.04,20070709,XXX,XXXX,9149935,120205.04