The UNIX and Linux Forums  

Go Back   UNIX og Linux Forums > Top Forums > Shell programmering og Skripting
.
google unix.com



Shell programmering og Skripting Post spørsmål om ksh, csh, SH, Bash, Perl, PHP, SED, awk og ANDRE shell scripts og Shell skriptespråk her.

Mer UNIX og Linux Forum Emner Du kan finne nyttig
Tråd Tråd startet Forum Svar Siste innlegg
Konvertering Column verdier å komma delimted enkelt rad nvuradi Shell programmering og Skripting 5 01-23-2009 01:24
konverterer vanlige desimaler til pakket desimaler mgirinath Shell programmering og Skripting 2 09-20-2008 10:27
Konvertering av Eksponentiell til numerisk i awk-ikke riktig output ssunda6 Shell programmering og Skripting 3 09-19-2008 02:36
Konvertering Binary desimalverdi kodede verdier til ASCII Verdier gaur.deepti UNIX for Advanced & ekspertbrukere 3 04-02-2008 01:33
Konvertering eksponentielle verdier rleebife Shell programmering og Skripting 2 08-03-2007 12:59

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 Søk i denne tråden Rate Thread Visningsmoduser
  #1 (permalink)  
Old 07-01-2009
barrypitts barrypitts is offline
Registrert bruker
  
 

Bli Dato: juli 2009
Sted: Dublin, Irelnad
Innlegg: 3
Konvertering Eksponentiell verdier til desimaler

Hei,

Jeg har en rekke store (500Mb) txt filer i følgende format:


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

Jeg ønsker toprint alle kolonnene men konvertere de første to kolonnene til desimaler f.eks 8.05370960E 05 til 805370.960
Alt jeg har gjort har rundet tallene til nærmeste hele tall f.eks 8.05370960E 05-805371

hjelp på dette ville være mye verdsatt.

Sist endret av barrypitts; 07-01-2009 på 12:14..
  #2 (permalink)  
Old 07-01-2009
durden_tyler's Avatar
durden_tyler durden_tyler is offline Forum Advisor  
Registrert bruker
  
 

Bli Dato: april 2009
Innlegg: 552
Sitat:
Originally Posted by barrypitts View Post
...
Jeg ønsker toprint alle kolonnene men konvertere de første to kolonnene til desimaler f.eks 8.05370960E 05 til 805370.960
...
Hvis miste mellomrom formateringen er ok med deg, og ett alternativ kan være:


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
Registrert bruker
  
 

Bli Dato: juli 2009
Sted: Dublin, Irelnad
Innlegg: 3
Cheers @ tyler_durden for rask respons.
Jeg har sett det jeg har blitt bedt om å gjøre og skjønte at jeg virkelig trenger bare kolonner $ 1, $ 2 og $ 5 som alle er av samme lengde så miste mellomrom formateringen er bra på dette punktet.

Men å holde plassen formateringen er vesentlig for de fleste forespørsler.

Hvis noen vet hvordan dette kan oppnås Jeg ville være interessert i å høre det.

Skål,
Barry
  #4 (permalink)  
Old 07-01-2009
Franklin52 Franklin52 is offline Forum Staff  
Moderator
  
 

Bli Date: Feb 2007
Innlegg: 4345
Sitat:
Originally Posted by barrypitts View Post
Men å holde plassen formateringen er vesentlig for de fleste forespørsler.

Hvis noen vet hvordan dette kan oppnås Jeg ville være interessert i å høre det.

Skål,
Barry
Prøv dette:

Code:
awk -F" |:" '
{$3=sprintf("%.3f", $3)}
{$5=sprintf("%.3f", $5)}
1' file

  #5 (permalink)  
Old 07-01-2009
barrypitts barrypitts is offline
Registrert bruker
  
 

Bli Dato: juli 2009
Sted: Dublin, Irelnad
Innlegg: 3
Sitat:
Originally Posted by Franklin52 View Post
Prøv dette:

Code:
awk -F" |:" '
{$3=sprintf("%.3f", $3)}
{$5=sprintf("%.3f", $5)}
1' file
Som er perfekt @ Franklin52
God jobb

Tusen takk @ Franklin52 og @ tyler_durden!
Barry
Reply

Hugseliste

Tags
awk, konvertere, numerisk

Thread Tools Søk i denne tråden
Søk i denne tråden:

Avansert søk
Visningsmoduser Ranger denne tråden
Ranger denne tråden:

Innleggsaktivitet Regler
Du kanskje ikke poste nye tråder
Du kanskje ikke poste svar
Du kanskje ikke post vedlegg
Du kanskje ikke redigere innleggene dine

BB-kode er PÃ¥
Smilefjes er PÃ¥
[IMG] koden PÃ¥
HTML-koden Av
Pingbacks er PÃ¥
Refbacks er PÃ¥




Alle klokkeslett er GMT -4. NÃ¥ er klokken 02:27.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant nettadresser av vBSEO 3.2.0