[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Ejecutar una orden y despues tomar ese valor.



2010/11/6 rantis cares <rantiscares@gmail.com>:
> Listeros:
>
> Quiero ser menos "burdo" al hacer mis scripts, se que doy mucha vuelta, y
> aunque obtengo el resultado, quiero comenzar a ser un poco mas "elegante" al
> hacerlos.
>
> Ejemplo:
>
> Tengo un archivo tal como; rantiscares-chido.txt ese archivo tiene diversos
> datos como mi direccion de mail y que presentan de la siguiente manera:
>
> NOMBRE: PEDRO
> APELLIDO: SANCHEZ
> MAIL: RANTISCARES@GMAIL.COM
>
> No necesariamente MAIL esta en la tercera linea, puede estar en cualquier
> linea, incluso la linea 20 y la unica linea que necesito es la tiene la
> constante que es MAIL:
>
> awk '$1 ~/MAIL/ {print $2}' "rantiscares-chido.txt | mail -s "hola mi cuate"
> AQUI-QUIERO-QUE-SE-PONGA-EL-MAIL-QUE-ENCONTRO


PUedes guardar el resultado de un comando en una variable.

NOMBRE_VARIABLE=$(COMANDO)
y luego para acceder a la variable: $NOMBRE_VARIABLE

En tu caso:
EMAIL=$(awk '$1 ~/MAIL/ {print $2}' "rantiscares-chido.txt)
mail -s "hola mi cuate" $EMAIL

En el caso concreto que comentas puedes pasar de usar variables y usar xargs.

así:
awk '$1 ~/MAIL/ {print $2}' "rantiscares-chido.txt | xargs mail -s
"hola mi cuate"

Aunque te recomiendo que lo hagas con variables, ya que los scripts
quedan mucho más claros y un codigo claro facilita su posterior
mantenimiento.

-- 
Marc


Reply to: