[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: