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

Guardar salida awk en variable

Estas en el tema de Guardar salida awk en variable en el foro de Unix / Linux en Foros del Web. Hola, tengo el siguiente fichero: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código txt: Ver original Video ID                         ...
  #1 (permalink)  
Antiguo 01/03/2011, 07:38
Avatar de AubeRoseau  
Fecha de Ingreso: diciembre-2010
Ubicación: Sevilla
Mensajes: 90
Antigüedad: 13 años, 11 meses
Puntos: 2
Guardar salida awk en variable

Hola,

tengo el siguiente fichero:
Código txt:
Ver original
  1. Video
  2. ID                               : 2
  3. Format                           : AVC
  4. Format/Info                      : Advanced Video Codec
  5. Format profile                   : [email protected]
  6. Format settings, CABAC           : Yes
  7. Format settings, ReFrames        : 4 frames
  8. Codec ID                         : avc1
  9. Codec ID/Info                    : Advanced Video Coding
  10. Duration                         : 2mn 18s
  11. Bit rate mode                    : Variable
  12. Bit rate                         : 1 000 Kbps
  13. Maximum bit rate                 : 2 584 Kbps
  14. Width                            : 848 pixels
  15. Height                           : 480 pixels
  16. Display aspect ratio             : 16:9
  17. Frame rate mode                  : Constant
  18. Frame rate                       : 23.976 fps

Quiero procesarlo mediante awk para obtener las dimensiones del vídeo (los valores de width y height. El código awk es muy sencillo, basta con:

Código awk:
Ver original
  1. awk '/Width/ { print $3 }' fichero.txt
  2. awk '/Height/ { print $3 }' fichero.txt

El problema es que no quiero imprimir (ni en un fichero ni por consola) los resultados, sino que quiero guardarlo en una variable para poder procesarlo más adelante. ¿Sabéis como se puede hacer esto?

Gracias!
  #2 (permalink)  
Antiguo 01/03/2011, 08:17
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Guardar salida awk en variable

igual que para capturar la salida de cualquier programa:

variable=`comando cuya salida querés capturar`

o

variable=$( comando cuya salida querés capturar )


Saludos.
  #3 (permalink)  
Antiguo 02/03/2011, 02:24
Avatar de AubeRoseau  
Fecha de Ingreso: diciembre-2010
Ubicación: Sevilla
Mensajes: 90
Antigüedad: 13 años, 11 meses
Puntos: 2
Respuesta: Guardar salida awk en variable

Gracias!

No sé porqué este lenguaje de programación se me olvida con tanta facilidad XD ya lo he usado alguna vez, pero me siento completamente nueva

De hecho tengo otra duda que no sé resolver. A mi script le paso como argumento la cadena Width, y lo que quiero es poner ese valor en la línea:

Código BASH:
Ver original
  1. awk '/Width/ { print $3 }' fichero.txt

Poniendo, algo así como:

Código BASH:
Ver original
  1. awk '/$1/ { print $3 }' fichero.txt

Pero así no funciona, ya que está leyendo $1 como si fuera una cadena y no el valor del argumento que le pasamos al script. ¿Sabéis si se puede hacer esto de alguna forma?

Saludos!

Última edición por AubeRoseau; 02/03/2011 a las 02:59
  #4 (permalink)  
Antiguo 02/03/2011, 05:47
Avatar de AubeRoseau  
Fecha de Ingreso: diciembre-2010
Ubicación: Sevilla
Mensajes: 90
Antigüedad: 13 años, 11 meses
Puntos: 2
Respuesta: Guardar salida awk en variable

He conseguido resolverlo usando lo siguiente: (lo dejo por si a alguien le interesa)

Código BASH:
Ver original
  1. nawk -v s=$SIZE '$0 ~ s  { print $3 }' fichero.txt)

Etiquetas: awk, salida, variables
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 01:45.