Diana Cobos Zaleta
Objetivo del programa          ultimo.sh                            Se desea extraer información de un archivo tipo LST ...
Parámetros necesarios            El programa necesita saber el nombre del archivo  que utilizara, como son 5 instancias ...
Antes de ejecutar ultimo.sh                          El programa pedirá el numero de unidades básicas y  con eso genera ...
Ejecutando ultimo.sh        
Programa ultimo.sh    #!/bin/bash    read    v=$REPLY                    echo "numero de unidades basicas: "   for i...
Archivo de salida                   El formato del archivo de salida es el siguinete: Emacs res_weee_40_3_2_cplex_opt:R...
Objetivo del programa      intento_sed.sh             Se desea obtener la siguiente información de un  archivo tipo LST ...
Parámetros necesarios            El programa pide al usuario la cantidad de unidades  básicas (solo hay instancias de 20...

Programa intento_sed.sh              #!/bin/bash   echo "numero de unidades basicas: "   read   v=$REPLY   for i in ...
Archivo de salida                El formato del archivo d¿es el siguinete: Emacs obtenido_20_3_5:**** SOLVER STATUS 1 N...
Próxima SlideShare
Cargando en…5
×

Tarea 2 y_3

783 visualizaciones

Publicado el

uso de AWK y SED

Publicado en: Empresariales
0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
783
En SlideShare
0
De insertados
0
Número de insertados
147
Acciones
Compartido
0
Descargas
3
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Tarea 2 y_3

  1. 1. Diana Cobos Zaleta
  2. 2. Objetivo del programa ultimo.sh  Se desea extraer información de un archivo tipo LST que se genera al correr el programa GAMS, y contiene demasiada información. Lo que se desea obtener son los siguientes resultados:  Status del solver  Status del modelo  Valor de la función objetivo  Mejor valor obtenido  Gaps absoluto y relativo:
  3. 3. Parámetros necesarios  El programa necesita saber el nombre del archivo que utilizara, como son 5 instancias parecidas de un total de 4 tipos, esto se automatizara con la ayuda del uso de BASH. El resultado obtenido se re direcciona a los archivos que llevaran el prefijo res_nombre_de_la_instancia.txt El nombre del archivo BASH creado es ultimo.sh No olvides dar permiso de escritura antes de ejecutarlo.
  4. 4. Antes de ejecutar ultimo.sh  El programa pedirá el numero de unidades básicas y con eso genera el nombre de la instancoa y ejecuta el for dentro del bash.
  5. 5. Ejecutando ultimo.sh 
  6. 6. Programa ultimo.sh #!/bin/bash read v=$REPLY  echo "numero de unidades basicas: " for i in 1 2 3 4 5; do if [ $v -eq "20" ] then for j in 2 3; do awk BEGIN {print "R E S U L T A D O S n"} $1 == "****" && $3 == "STATUS" {print $2,$3,":",$5,$6,$7} $2 == "OBJECTIVE" {print $2,$3,$4} $1 == "MIP" && $2 == "status" {print $0} $1 == "Best" {print $0, "nLos GAP absolutos y relativos son:"} $2 ~ /gap:$/ {print $0} END {print "--------------fin----------------"} $"weee_"$v"_"$j"_"$i"_cplex_opt.lst" > "res_weee_"$v"_"$j"_"$i"_cplex_opt.txt" done elif [ $v -eq "40" ]; then for j in 3 4; do awk BEGIN {print "R E S U L T A D O S n"} $1 == "****" && $3 == "STATUS" {print $2,$3,":",$5,$6,$7} $2 == "OBJECTIVE" {print $2,$3,$4} $1 == "MIP" && $2 == "status" {print $0} $1 == "Best" {print $0, "nLos GAP absolutos y relativos son:"} $2 ~ /gap:$/ {print $0} END {print "--------------fin----------------"} $"weee_"$v"_"$j"_"$i"_cplex_opt.lst" > "res_weee_"$v"_"$j"_"$i"_cplex_opt.txt" done else echo "Solo hay instancias con 20 y 40 nodos" break fi echo "Finalizado con $v unidades basicas" done
  7. 7. Archivo de salida  El formato del archivo de salida es el siguinete: Emacs res_weee_40_3_2_cplex_opt:RESULTADOSSOLVER STATUS : RESOURCE INTERRUPTMODEL STATUS : INTEGER SOLUTIONOBJECTIVE VALUE 0.8000Best possible: 9.400000Los GAP absolutos y relativos son:Absolute gap: 8.600000Relative gap: 10.750000--------------fin----------------
  8. 8. Objetivo del programa intento_sed.sh  Se desea obtener la siguiente información de un archivo tipo LST  Estatus del solver  Estatus del modelo  Valor del gap (fijado por usuario en GAMS)  Gap Absoluto  Gap Relativo
  9. 9. Parámetros necesarios  El programa pide al usuario la cantidad de unidades básicas (solo hay instancias de 20 y 40 nodos). Se ayudara con una automatización hecha con BASH. El resultado obtenido se re direcciona a los archivos que llevaran el nombre: obtenido_NumNodos_Param_instancia El nombre del archivo BASH creado es intento_sed.sh No olvides dar permiso de escritura antes de ejecutarlo.
  10. 10.
  11. 11. Programa intento_sed.sh  #!/bin/bash echo "numero de unidades basicas: " read v=$REPLY for i in 1 2 3 4 5; do if [ $v -eq "20" ]; then for j in 2 3; do sed -n -e /STATUS/p -e /gap/p "weee_"$v"_"$j"_"$i"_cplex_opt.lst" > "obtenido_"$v"_"$j"_"$i done elif [ $v -eq "40" ]; then for j in 3 4; do sed -n -e /STATUS/p -e /gap/p "weee_"$v"_"$j"_"$i"_cplex_opt.lst" > "obtenido_"$v"_"$j"_"$i done else echo "Solo hay instancias con 20 y 40 nodos" break fi echo "Finalizado con $v unidades basicas" done
  12. 12. Archivo de salida  El formato del archivo d¿es el siguinete: Emacs obtenido_20_3_5:**** SOLVER STATUS 1 NORMAL COMPLETION**** MODEL STATUS 1 OPTIMAL>> epgap 0.0001Absolute gap: 0.000000Relative gap: 0.000000

×