The UNIX and Linux Forums  
Bonjour et bienvenu par les États-Unis à la UNIX et Linux Forums! Merci de votre visite et vous joindre à notre communauté mondiale.

Go Back   Les systèmes UNIX et Linux Forums > Top Forums > De programmation et de script Shell
.
google unix.com



De programmation et de script Shell Posez vos questions à propos de KSH, CSH, SH, BASH, PERL, PHP, SED, awk et d'autres scripts shell et les langages de script shell ici.

Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
Fil Thread Starter Forum Réponses Last Post
Conversion de la colonne des valeurs à virgule delimted seul Row nvuradi De programmation et de script Shell 5 01-23-2009 01:24 AM
ordinaire à convertir des décimales Paniers décimales mgirinath De programmation et de script Shell 2 09-20-2008 09:27 AM
Conversion des Exponential numériques dans awk-pas correct de sortie ssunda6 De programmation et de script Shell 3 09-19-2008 01:36 AM
Conversion binaire décimal codé valeurs valeurs ASCII gaur.deepti UNIX for Advanced & Expert Users 3 04-02-2008 12:33 PM
Conversion de valeurs exponentielle rleebife De programmation et de script Shell 2 08-02-2007 11:59 PM

Reply
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Recherche sur ce Thread Rate Thread Modes d'affichage
  #1 (permalink)  
Old 07-01-2009
barrypitts barrypitts is offline
Registered User
  
 

Date d'inscription: juillet 2009
Lieu: Dublin, Irelnad
Messages: 3
Conversion de valeurs décimales Exponential

Salut,

J'ai un certain nombre de grandes (500Mb) txt les fichiers dans le format suivant:

Code:
  8.05475136E+05  9.69428147E+05  1 14  2968.00   3419.00     59.00   59 3.4028235E+38 2 w99-100
  8.05464719E+05  9.69435064E+05  1 14  2968.03   3418.50     60.00   60 3.4028235E+38 2 w99-100
  8.05454301E+05  9.69441981E+05  1 14  2968.05   3418.00     61.00   61 3.4028235E+38 2 w99-100
  8.05443884E+05  9.69448898E+05  1 14  2968.08   3417.50     62.00   62 3.4028235E+38 2 w99-100
  8.05433466E+05  9.69455815E+05  1 14  2968.11   3417.00     63.00   63 3.4028235E+38 2 w99-100
  8.05423048E+05  9.69462733E+05  1 14  2968.14   3416.50     64.00   64 3.4028235E+38 2 w99-100
  8.05412631E+05  9.69469650E+05  1 14  2968.16   3416.00     65.00   65 3.4028235E+38 2 w99-100
  8.05402213E+05  9.69476567E+05  1 14  2968.19   3415.50     66.00   66 3.4028235E+38 2 w99-100
  8.05391795E+05  9.69483484E+05  1 14  2968.22   3415.00     67.00   67 3.4028235E+38 2 w99-100
  8.05381378E+05  9.69490401E+05  1 14  2968.24   3414.50     68.00   68 3.4028235E+38 2 w99-100
  8.05370960E+05  9.69497318E+05  1 14  2968.27   3414.00     69.00   69 3.4028235E+38 2 w99-100
Je voudrais toprint toutes les colonnes, mais de convertir les deux premières colonnes de décimales par exemple 8.05370960E 05 à 805370.960
Tout ce que j'ai fait a arrondi les chiffres pour l'unité la plus proche, par exemple 8.05370960E 05 à 805.371

toute aide sur ce serait très apprécié.

Dernière édition par barrypitts; 07-01-2009 à 11:14 AM..
  #2 (permalink)  
Old 07-01-2009
durden_tyler's Avatar
durden_tyler durden_tyler is offline Forum Advisor  
Registered User
  
 

Date d'inscription: avril 2009
Messages: 528
Citation:
Posté par barrypitts View Post
...
Je voudrais toprint toutes les colonnes, mais de convertir les deux premières colonnes de décimales par exemple 8.05370960E 05 à 805370.960
...
Si perte de formatage de l'espace est d'accord avec vous, alors, une solution pourrait être:

Code:
$
$ awk '{printf("%.3f %.3f %s %s %s %s %s %s %s %s %s\n",$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11)}' data.txt
805475.136 969428.147 1 14 2968.00 3419.00 59.00 59 3.4028235E+38 2 w99-100
805464.719 969435.064 1 14 2968.03 3418.50 60.00 60 3.4028235E+38 2 w99-100
805454.301 969441.981 1 14 2968.05 3418.00 61.00 61 3.4028235E+38 2 w99-100
805443.884 969448.898 1 14 2968.08 3417.50 62.00 62 3.4028235E+38 2 w99-100
805433.466 969455.815 1 14 2968.11 3417.00 63.00 63 3.4028235E+38 2 w99-100
805423.048 969462.733 1 14 2968.14 3416.50 64.00 64 3.4028235E+38 2 w99-100
805412.631 969469.650 1 14 2968.16 3416.00 65.00 65 3.4028235E+38 2 w99-100
805402.213 969476.567 1 14 2968.19 3415.50 66.00 66 3.4028235E+38 2 w99-100
805391.795 969483.484 1 14 2968.22 3415.00 67.00 67 3.4028235E+38 2 w99-100
805381.378 969490.401 1 14 2968.24 3414.50 68.00 68 3.4028235E+38 2 w99-100
805370.960 969497.318 1 14 2968.27 3414.00 69.00 69 3.4028235E+38 2 w99-100
$
$
tyler_durden
  #3 (permalink)  
Old 07-01-2009
barrypitts barrypitts is offline
Registered User
  
 

Date d'inscription: juillet 2009
Lieu: Dublin, Irelnad
Messages: 3
Cheers @ tyler_durden pour la réponse rapide.
Nous avons examiné ce que j'ai été invité à le faire et dit que je ne doivent colonnes $ 1, $ 2, $ 5 et qui sont tous de la même longueur, afin de perdre l'espace de mise en forme est acceptable à ce point.

Cependant le maintien de l'espace de mise en forme est essentielle pour la plupart des demandes.

Si quelqu'un sait comment cela peut être réalisé, je serais curieux de l'entendre.

À la vôtre,
Barry
  #4 (permalink)  
Old 07-01-2009
Franklin52 Franklin52 is online now Forum Staff  
Modérateur
  
 

Join Date: Feb 2007
Posts: 4307
Citation:
Posté par barrypitts View Post
Cependant le maintien de l'espace de mise en forme est essentielle pour la plupart des demandes.

Si quelqu'un sait comment cela peut être réalisé, je serais curieux de l'entendre.

À la vôtre,
Barry
Essayez ceci:
Code:
awk -F" |:" '
{$3=sprintf("%.3f", $3)}
{$5=sprintf("%.3f", $5)}
1' file
  #5 (permalink)  
Old 07-01-2009
barrypitts barrypitts is offline
Registered User
  
 

Date d'inscription: juillet 2009
Lieu: Dublin, Irelnad
Messages: 3
Citation:
Posté par Franklin52 View Post
Essayez ceci:
Code:
awk -F" |:" '
{$3=sprintf("%.3f", $3)}
{$5=sprintf("%.3f", $5)}
1' file
C'est parfait @ Franklin52
Good job

Merci beaucoup @ Franklin52 et @ tyler_durden!
Barry
Reply

Bookmarks

Tags
awk, convertir, numérique

Thread Tools Recherche sur ce Thread
Recherche sur ce Thread:

Recherche avancée
Modes d'affichage Rate this thread
Rate this thread:

Règles de messages
Tu mai pas de nouvelles discussions: nonoui
Tu mai pas envoyer des réponses:
Tu mai pas envoyer des pièces jointes
Tu mai pas modifier vos messages

BB code est Sur
Smilies sont Sur
[IMG] code est Sur
Le code HTML est Hors tension
Trackbacks sont Sur
Pingbacks sont Sur
Refbacks sont Sur




Toutes les heures sont au format GMT -4. Le temps est maintenant 06:49 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traductions Langue Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Les systèmes UNIX et Linux Forums Content Copyright © 1993-2009. Tous droits Reserved.Ad de gestion par RedTyger

Content Relevant URLs par vBSEO 3.2.0