The UNIX and Linux Forums  

Go Back   El UNIX y Linux Foros > Arriba Foros > Programación de scripts de shell y
.
google unix.com



Programación de scripts de shell y Plantear preguntas sobre KSH, CSH, SH, BASH, PERL, PHP, SED, AWK y otros scripts de shell y lenguajes de script de shell aquí.

Más UNIX y Linux Foro Temas usted puede encontrar útiles
Hilo Hilo para principiantes Foro Respuestas Último mensaje
Columna a la conversión de valores de coma delimted una hilera nvuradi Programación de scripts de shell y 5 01-23-2009 01:24 AM
convertir decimales a regular Bolsas decimales mgirinath Programación de scripts de shell y 2 09-20-2008 10:27 AM
Conversión de exponencial a numéricos en awk-salida no es correcto ssunda6 Programación de scripts de shell y 3 09-19-2008 02:36 AM
La conversión de binario a decimal codificado valores Ascii Valores gaur.deepti UNIX para usuarios avanzados y expertos 3 04-02-2008 01:33 PM
Exponencial de la conversión de valores rleebife Programación de scripts de shell y 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 vínculo Herramientas de hilo Buscar en este Hilo Tasa de Hilo Modos de visualización
  #1 (Enlace permanente)  
Old 07-01-2009
barrypitts barrypitts is offline
Usuario Registrado
  
 

Fecha: julio 2009
Lugar: Dublín, Irelnad
Publicaciones: 3
Exponencial convertir a valores decimales

Hola,

Tengo un número de grandes (500Mb) txt en el siguiente formato:


Código:
  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

Me gustaría toprint todas las columnas, sino convertir las dos primeras columnas de decimales, por ejemplo 8.05370960E 05-805370.960
Todo lo que he hecho ha redondeado el número al número entero más cercano por ejemplo 8.05370960E 05-805371

cualquier ayuda sobre esto sería muy apreciada.

Última edición por barrypitts; al 07-01-2009 12:14 PM..
  #2 (Enlace permanente)  
Old 07-01-2009
durden_tyler's Avatar
durden_tyler durden_tyler is offline Forum Advisor  
Usuario Registrado
  
 

Fecha: abril 2009
Posts: 552
Cita:
Publicado originalmente por barrypitts View Post
...
Me gustaría toprint todas las columnas, sino convertir las dos primeras columnas de decimales, por ejemplo 8.05370960E 05-805370.960
...
En caso de perder el espacio en blanco de formato no está mal con usted y, a continuación, una opción podría ser:


Código:
$
$ 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 (Enlace permanente)  
Old 07-01-2009
barrypitts barrypitts is offline
Usuario Registrado
  
 

Fecha: julio 2009
Lugar: Dublín, Irelnad
Publicaciones: 3
Saludos @ tyler_durden por la rápida respuesta.
He revisado lo que he sido requerido para hacerlo y me imaginé que solamente necesitan columnas de $ 1, $ 2 y $ 5, que son todos la misma longitud a fin de perder el espacio en blanco de formato está bien en este momento.

Sin embargo el espacio de formato de mantenimiento es esencial para la mayoría de las solicitudes.

Si alguien sabe cómo esto puede lograrse me interesaría escucharlo.

¡Salud!,
Barry
  #4 (Enlace permanente)  
Old 07-01-2009
Franklin52 Franklin52 is offline Forum Staff  
Moderador
  
 

Fecha: febrero 2007
Mensajes: 4.345
Cita:
Publicado originalmente por barrypitts View Post
Sin embargo el espacio de formato de mantenimiento es esencial para la mayoría de las solicitudes.

Si alguien sabe cómo esto puede lograrse me interesaría escucharlo.

¡Salud!,
Barry
Pruebe esto:

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

  #5 (Enlace permanente)  
Old 07-01-2009
barrypitts barrypitts is offline
Usuario Registrado
  
 

Fecha: julio 2009
Lugar: Dublín, Irelnad
Publicaciones: 3
Cita:
Publicado originalmente por Franklin52 View Post
Pruebe esto:

Código:
awk -F" |:" '
{$3=sprintf("%.3f", $3)}
{$5=sprintf("%.3f", $5)}
1' file
Es perfecto @ Franklin52
Buen trabajo

Muchas gracias Franklin52 @ y @ tyler_durden!
Barry
Reply

Marcadores

Etiquetas
awk, convertir, numérico

Herramientas de hilo Buscar en este Hilo
Buscar en este Hilo:

Búsqueda avanzada
Modos de visualización Vota a este hilo
Vota a este hilo:

Normas de envío
puede que no nuevo puesto de hilos
puede que no enviar respuestas
puede que no enviar archivos adjuntos
puede que no editar sus puestos

Código BB es Encendido
Emoticones son Encendido
[IMG] código Encendido
Código HTML es Apagado
Trackbacks son Encendido
Pingbacks son Encendido
Refbacks son Encendido




Todas las horas son GMT -4. La hora es 01:22 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traducciones de idiomas Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Estudios
El UNIX y Linux Foros Contenido Copyright © 1993-2009. Todos los derechos Reserved.Ad Gestión por RedTyger

Las direcciones URL de contenido vBSEO 3.2.0