Hola bmejiap,

Puedes usar gawk ó awk para procesar la salida, dale man awk o man gawk en el
shell para su uso si es que lo instalaste o esta en tu distribución.

También te anexo un script que hice para actualizar mis smtproutes como ejemplo
de como procesar la salida de un comando en línea.

-0-0-0-0-0-0-0-0-0-0-0

#!/bin/sh
#
# actualiza_smtp.sh: Actualiza el archivo smtproutes para los sitios de IP 
Dinámica
#
# Ene/06/2006 Modified by Jose Eduardo Gauna Labrada (zoorfer)
#
#
#

#TCP_SERVER_DIR=/var/qmail/control
TCP_SERVER_DIR=/etc/tcpserver

echo "Start Resolving Domain Names..."

#rm ./domresolvd.txt
if [ ! -f ${TCP_SERVER_DIR}/fixedip ]; then
(
        echo
        echo "Fixed IP's file not found"
        echo "Please setup a file"
        echo
        false
) &> /var/log/`basename $0`
else
(
        if [ -f ${TCP_SERVER_DIR}/tcp.smtp ]; then
                mv ${TCP_SERVER_DIR}/tcp.smtp ${TCP_SERVER_DIR}/tcp.smtp_old
        fi
        cp ${TCP_SERVER_DIR}/fixedip ${TCP_SERVER_DIR}/tcp.smtp
        echo "# Actualizado el" `date` >> ${TCP_SERVER_DIR}/tcp.smtp
        for item in `cat ${TCP_SERVER_DIR}/domresolv.txt`
        do
                echo -e "Resolving IP for Domain \e[36;1m${item}\e[0m "
                echo "# Dominio $item " >> ${TCP_SERVER_DIR}/tcp.smtp
                IP=`ping -n -c 1 $item | grep "64 octets from " | cut -f1 -d':'
| cut -f4 -d" "`
                if [ $IP <> " " ]; then
                        echo "$IP:allow,RELAYCLIENT=\"\",RBLSMTPD=\"\"" >>
${TCP_SERVER_DIR}/tcp.smtp
                else
                        echo "# Domain Not Resolved. " >> 
${TCP_SERVER_DIR}/tcp.smtp
                fi
                #ping -n -c 1 $item | grep "64 bytes from " | cut -f1 -d':' |
cut -f4 -d" " >> ${TCP_SERVER_DIR}/tcp.smtp
        done
        echo ":allow" >> ${TCP_SERVER_DIR}/tcp.smtp
) &> /var/log/`basename $0`
fi

echo "Resolving Domain Names " `okfail $?`
echo "Updating Rules..."
${TCP_SERVER_DIR}/updaterules.sh

-0-0-0-0-0-0-0-0-0-0-0

Espero te sea útil.

Saludos
Zoorfer



bmejiap escribió:
> 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:4aa6f09b82361366413119!
> 

Responder a