Foros del Web » Administración de Sistemas » Unix / Linux »

awk y espacios en blanco

Estas en el tema de awk y espacios en blanco en el foro de Unix / Linux en Foros del Web. Hola, Tengo esta cadena de texto dentro de un fichero llamado test.txt: Código: col1 col2 col3 col4 col5 col6 col7 col8 col9 col10 Ejecuto: Código: ...
  #1 (permalink)  
Antiguo 18/03/2015, 10:20
 
Fecha de Ingreso: octubre-2008
Mensajes: 276
Antigüedad: 15 años, 6 meses
Puntos: 1
Pregunta awk y espacios en blanco

Hola,

Tengo esta cadena de texto dentro de un fichero llamado test.txt:

Código:
      col1 col2 col3   col4   col5 col6  col7              col8          col9 col10
Ejecuto:

Código:
awk '{if($1=="col1"){$9="hjol"} print $0}' test.txt
y me devuelve:

Código:
col1 col2 col3 col4 col5 col6 col7 col8 hjol col10
Como se puede ver se han perdido los espacios. ¿Cómo puedo hacer para reemplazar la columna 9 y que no se pierdan los espacios?

Muchas gracias.
__________________
Uso Apache 2.2 con PHP 5.5.9 y MySQL 5.1
Uso Eclipse IDE for Java Developers, Version: Mars.1 Release (4.5.1), Build id: 20150924-1200 para programar en Java bajo Windows
  #2 (permalink)  
Antiguo 18/03/2015, 12:12
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: awk y espacios en blanco

Lo que pedís no es sencillo, al menos con awk. Por lo que leí en stackoverflow, el problema se produce al editar alguno de los campos, de hecho si tu código awk fuese simplemente un print $0, verías que los espacios se preservan.

Soluciones:
- Editar directamente $0, si conocés el largo de la cadena, vía la función substr
- Si lo que te preocupa es que cada campo ocupe una cantidad determinada de caracteres, podés usar printf:

Código BASH:
Ver original
  1. printf "%10s %10s %5s %5s %5s %5s %5s %5s %5s %5s\n" $(awk '{if($1=="col1"){$9="hjol"} print}' test.txt)
  #3 (permalink)  
Antiguo 18/03/2015, 12:19
 
Fecha de Ingreso: octubre-2008
Mensajes: 276
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: awk y espacios en blanco

Pensaba que habría una solución más limpia...

Gracias de todos modos.
__________________
Uso Apache 2.2 con PHP 5.5.9 y MySQL 5.1
Uso Eclipse IDE for Java Developers, Version: Mars.1 Release (4.5.1), Build id: 20150924-1200 para programar en Java bajo Windows

Etiquetas: awk, blank
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:22.