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

[Bash] Detectar correo en una línea



Hola, estoy mirando unos manuales sencillitos de sed con ejemplos y demás pues 
tengo que hacer un script que lea un correo y se quede exclusivamente con la 
dirección de correo del From limpia (sin <>, sin comillas, sin nada, sólo 
usuario@dominio.com).


Mi script de momento hace esto:

----------------------------------------------------------------
#!/bin/bash 

# Almacenamos en $linea_from toda la línea del "From: ".
linea_from=$(formail -X "From:" < correo.txt)

# $linea_from puede ser de los siguientes tipos:
# From: "Leandro Gao" <leandrogao@dominio.com>
# From: =?iso-8859-15?q?leandro= <leandrogao@dominio.com>
# From: leandrogao@dominio.com

from=comando_quedarse_sólo_con_campo_email   <--esto me falta

# Limpiamos los signos <> que pueden aparecer en los extremos del correo:
from=$(echo $from  | sed -e 's/[<>]//g')
----------------------------------------------------------------------

Como veis  me falta poder quedarme sólo con el campo que tiene una arroba, esa 
es la condición. Desgraciadamente no encuentro con "sed" el modo de 
seleccionar un campo de una línea. ¿Sería más apropiado otro comando? ¿awk?

Agradezco cualquier ayuda. Estoy aprendiendo un poco más de Bash (que lo tenía 
muy olvidado) ya que estos días me hace mucha falta.

Gracias y un saludo a todos.


-- 
y hasta aquí puedo leer...



Reply to: