awk es tu amigo:


---8<--------8<--------8<--------8<--------8<--------8<--------8<-----

cat data.txt | while read linea; do
   eval $(echo $linea | awk '{print "MODULO=$(echo "$1," | cut -f2 -d-)";
                              for (i=9; i <= NF; i++)
                                 print "ERRORES[" i - 9 "]=" strtonum($i);}')

   for disco in `seq 0 11`; do
      if [ ${ERRORES[$disco]} !=  "0" ]; then
         echo comando_extra $MODULO $disco ${ERRORES[$disco]}
      fi
   done

done

---8<--------8<--------8<--------8<--------8<--------8<--------8<-----


Aqui suponemos que data.txt contiene los datos que pusiste en tu mensaje, y que el comando que hay que correr cuando encuentras errores mayores a 0 se llama "comando_extra" y espera argumentos el numero de modulo, disco y la cantidad de errores. Ahi ajustale pa'tus necesidades :P




On Tue, 8 Sep 2009, bmejiap wrote:

Hola que tal, tenemos un asuntillo para automatizar aqui en la chamba,


module-1 16 C7 Ultra DMA CRC Error Count 0  0  0  0  0  0  0  0  0  0  0  0
module-2 16 C7 Ultra DMA CRC Error Count 0  0  0  0  0  0  0  0  0  0  0  0
module-3 16 C7 Ultra DMA CRC Error Count 0  0  0  0  0  0  0  0  0  0  0  0
module-4 16 C7 Ultra DMA CRC Error Count 0  0  0  0  0  0  0  0  0  0  0  0
module-5 16 C7 Ultra DMA CRC Error Count 0  0  0  0  0  0  0  0  0  0  0  0
module-6 16 C7 Ultra DMA CRC Error Count 0  0  0  0  0  0  0  0  0  0  0  0
module-7 16 C7 Ultra DMA CRC Error Count 0  0  0  0  0  0  0  0  0  0  0  0
module-8 16 C7 Ultra DMA CRC Error Count 0  0  0  0  0  0  0  0  0  0  0  0
module-9 16 C7 Ultra DMA CRC Error Count 0  0  0  0  0  0  0  0  0  0  0  0
module-10 16 C7 Ultra DMA CRC Error Count 0  0  0  0  0  0  0  0  0  0  0  0
module-11 16 C7 Ultra DMA CRC Error Count 0  0  0  0  0  0  0  0  0  0  0  0
module-12 16 C7 Ultra DMA CRC Error Count 0  0  0  0  0  0  0  0  0  0  0  0
module-13 16 C7 Ultra DMA CRC Error Count 0  0  0  0  0  0  0  0  0  0  0  0
module-14 16 C7 Ultra DMA CRC Error Count 0  0  0  0  0  0  0  0  0  0  0  0
module-15 16 C7 Ultra DMA CRC Error Count 0  0  0  0  0  0  0  782  0  0  0  67

como pueden ver en la ultima linea hay una cantidad mayor a 0, la onda es esta, 
si cualquiera de los 12 lugares tiene algo mayor a cero tengo que ejecutar otro 
comando en el modulo especificado y en el disco indicado

la pregunta es como poder hacer eso en bash, que el script solito sea capaz de 
definir el modulo y el disco, y eso mandarlo a variables y luego ejecutar el 
otro comando con las variables anteriores!

Saludos,
Bernardo.

*****************************************************
Bernardo Mejia Paredes
xanatos
;=) ujuju


     Encuentra las mejores recetas en Yahoo! Cocina.
http://mx.mujer.yahoo.com/cocina/

!DSPAM:4aa6efb594891355718722!

Responder a