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!
>