![]() |
|
|
google unix.com
|
|||||||
| Forum | Registrera | Forum Regler | Länkar | Album | FAQ | Medlemslista | Kalender | Söka | Dagens inlägg | Markera forum som lästa |
| Shell-programmering och Skript Post frågor om ksh, CSH, SH, bash, PERL, PHP, sed, awk och andra skalskript och skal skriptspråk här. |
Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Senaste Inlägg |
| Konvertering Kolumn värden kommatecken delimted enda rad | nvuradi | Shell-programmering och Skript | 5 | 01-23-2009 01:24 |
| omvandla Regelbundna decimaler till Packat decimaler | mgirinath | Shell-programmering och Skript | 2 | 09-20-2008 10:27 |
| Omvandling av Exponential att numeriskt i awk-inte korrekt output | ssunda6 | Shell-programmering och Skript | 3 | 09-19-2008 02:36 |
| Konvertering Binary decimalsystem kodade värden till Ascii Värderingar | gaur.deepti | UNIX för avancerade & Expertanvändare | 3 | 04-02-2008 01:33 |
| Konvertering exponentiella värden | rleebife | Shell-programmering och Skript | 2 | 08-03-2007 12:59 |
![]() |
|
|
LinkBack | Thread Tools | Sök i denna tråd | Rate Thread | Visningslägen |
|
|
|
#1 (permalänk)
|
||||
|
||||
|
Konvertering Exponential värden decimaler
Hej, Jag har ett antal stora (500MB) txt-filer i följande format: Kod:
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 Jag vill toprint alla kolumner men omvandla de två första kolumnerna till decimaler t.ex. 8.05370960E 05-805370.960 Allt jag gjort har avrundat siffrorna till närmaste heltal t.ex. 8.05370960E 05-805371 någon hjälp om det skulle vara mycket uppskattat. Senast redigerad av barrypitts; 07-01-2009 vid 12:14.. |
|
#2 (permalänk)
|
|||||
|
|||||
|
Citat:
Kod:
$
$ 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 (permalänk)
|
||||
|
||||
|
Skål @ tyler_durden för snabbt svar.
Jag har granskat vad jag har blivit ombedd att göra och tänkte att jag verkligen behöver bara kolumner $ 1, $ 2 och $ 5 som alla är av samma längd, så förlorar det tomma utrymmet formateringen är okej vid denna tidpunkt. Men att hålla utrymmet formateringen är väsentliga för de flesta önskemål. Om någon vet hur detta kan uppnås skulle jag vara intresserad av att höra det. Skål, Barry |
|
#4 (permalänk)
|
||||
|
||||
|
Citat:
Kod:
awk -F" |:" '
{$3=sprintf("%.3f", $3)}
{$5=sprintf("%.3f", $5)}
1' file
|
|
#5 (permalänk)
|
||||
|
||||
|
Citat:
Bra jobbat Tack @ Franklin52 och @ tyler_durden! Barry |
![]() |
| Komihåglista |
| Taggar |
| awk, konvertera, numeriska |
| Thread Tools | Sök i denna tråd |
| Visningslägen | Betygsätt denna tråd |
|
|