The UNIX and Linux Forums  
Ciao e benvenuto da parte degli Stati Uniti al UNIX e Linux Forum! Grazie per la visita ed unirsi alla nostra Comunità Globale.

Go Back   UNIX e Linux Forum > Inizio Forum > Shell scripting e di programmazione
.
google unix.com



Shell scripting e di programmazione Pubblica domande su KSH, CSH, SH, Bash, Perl, PHP, sed, awk e da altri script di shell e linguaggi di scripting shell qui.

Più di UNIX e Linux Forum Argomenti potreste trovare utili
Filo Thread Starter Forum Risposte Ultimo Post
Convertire i valori Colonna singola virgola delimted Row nvuradi Shell scripting e di programmazione 5 01-23-2009 01:24 AM
decimali di convertire regolari imballati decimali mgirinath Shell scripting e di programmazione 2 09-20-2008 10:27 AM
Conversione di Esponenziale di awk-numerico in uscita non è corretta ssunda6 Shell scripting e di programmazione 3 09-19-2008 02:36 AM
Conversione binario decimale codificato valori Ascii Valori gaur.deepti UNIX e avanzata per utenti esperti 3 04-02-2008 01:33 PM
Conversione di valori esponenziale rleebife Shell scripting e di programmazione 2 08-03-2007 12:59 AM

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 Cerca in questo Thread Rate Thread Modalità di visualizzazione
  #1 (permalink)  
Old 07-01-2009
barrypitts barrypitts is offline
Utente Registrato
  
 

Iscriviti Data: luglio 2009
Ubicazione: Dublino, Irelnad
Interventi: 3
Conversione esponenziale valori decimali

Salve,

Ho un certo numero di grandi dimensioni (500MB) file txt nel seguente formato:

Codice:
  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
Vorrei toprint tutte le colonne, ma convertire le prime due colonne di decimali per esempio 8.05370960E 05 a 805370.960
Tutto ciò che ho fatto è il numero arrotondato al numero intero più vicino ad esempio 8.05370960E 05 a 805371

qualsiasi aiuto, questo sarebbe molto apprezzato.

Ultimo a cura di barrypitts; al 07/01/2009 12:14 PM..
  #2 (permalink)  
Old 07-01-2009
durden_tyler's Avatar
durden_tyler durden_tyler is offline Forum Advisor  
Utente Registrato
  
 

Iscriviti Data: aprile 2009
Interventi: 536
Citazione:
Originalmente inviato da barrypitts View Post
...
Vorrei toprint tutte le colonne, ma convertire le prime due colonne di decimali per esempio 8.05370960E 05 a 805370.960
...
Se perdere la formattazione spazio vuoto è ok con voi, quindi una soluzione potrebbe essere:

Codice:
$
$ 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
Utente Registrato
  
 

Iscriviti Data: luglio 2009
Ubicazione: Dublino, Irelnad
Interventi: 3
Cheers @ tyler_durden per la rapida risposta.
Ho rivisto quello che ho chiesto di fare e figurati che ho solo bisogno di colonne $ 1, $ 2, $ 5 e che sono tutti la stessa lunghezza così perdere la formattazione spazio vuoto è bene a questo punto.

Tuttavia lo spazio mantenendo la formattazione è essenziale per la maggior parte delle richieste.

Se qualcuno sa come questo può essere realizzato Mi interesserebbe sentire.

Salute,
Barry
  #4 (permalink)  
Old 07-01-2009
Franklin52 Franklin52 is online now Forum Staff  
Moderatore
  
 

Iscriviti Data: febbraio 2007
Messaggi: 4.313
Citazione:
Originalmente inviato da barrypitts View Post
Tuttavia lo spazio mantenendo la formattazione è essenziale per la maggior parte delle richieste.

Se qualcuno sa come questo può essere realizzato Mi interesserebbe sentire.

Salute,
Barry
Prova questo:
Codice:
awk -F" |:" '
{$3=sprintf("%.3f", $3)}
{$5=sprintf("%.3f", $5)}
1' file
  #5 (permalink)  
Old 07-01-2009
barrypitts barrypitts is offline
Utente Registrato
  
 

Iscriviti Data: luglio 2009
Ubicazione: Dublino, Irelnad
Interventi: 3
Citazione:
Originalmente inviato da Franklin52 View Post
Prova questo:
Codice:
awk -F" |:" '
{$3=sprintf("%.3f", $3)}
{$5=sprintf("%.3f", $5)}
1' file
È perfetto @ Franklin52
Good job

Grazie molto Franklin52 e @ @ tyler_durden!
Barry
Reply

Segnalibri

Tag
awk, convertire, numerico

Thread Tools Cerca in questo Thread
Cerca in questo Thread:

Ricerca Avanzata
Modalità di visualizzazione Vota questo thread
Vota questo thread:

Distacco regolamento
Tu non può post nuovo thread
Tu non può inviare una risposta
Tu non può postare allegati
Tu non può modificare i tuoi post

BB codice è Su
Smilies sono Su
[IMG] codice Su
Codice HTML è Chiuso
Trackbacks sono Su
Pingbacks sono Su
Refbacks sono Su




Tutti gli orari sono GMT -4. La data di oggi è 03:56 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traduzioni Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX e Linux Forum Content Copyright © 1993-2009. Tutti i diritti Reserved.Ad di gestione da RedTyger

Contenuti pertinenti URL da vBSEO 3.2.0