Grep адреса электронной почты с TLD из файла

#bash #shell #email #web #sh

#bash #оболочка #Адрес электронной почты #веб #sh

Вопрос:

У меня есть файл с адресами электронной почты следующим образом:

 example.example@gmail.com
Jhon.sam@example.com
George.callaghan@example.co.uk
Example@example.org
kelly.diana@organization.ac.in
 

Мне нужен вывод только с доменами TLD в скрипте bash.

Вывод должен быть:

 example.example@gmail.com
Jhon.sam@example.com
Example@example.org
 

Команда grep, которую я использовал,

 grep -i -o '[A-Z0-9._% -] @[A-Z0-9.-] .[A-Z]{2,4}' webpage.html
 

Ответ №1:

вы почти на месте! просто удалите . from [A-Z0-9.-] и добавьте $ в конце:

 $ grep -i -o '[A-Z0-9._% -] @[A-Z0-9-] .[A-Z]{2,4}


Комментарии:

1. email_filtered="$(grep -i -o '[A-Z0-9._% -] @[ A-Z0-9-] .[A-Z]{2,4}$' webpage.html )" echo "$email_filtered" Я пыталсятаким образом, но я не получаю никаких данных из webpage.html . Этот файл содержит электронные письма в виде текста. Пожалуйста, помогите мне

2. @samhithgardas что webpage.html содержит? если формат отличается от формата, опубликованного в вопросе (т. Е. По одному адресу в строке), это решение не будет работать. пожалуйста, покажите точное содержимое webpage.html .

emails
example.example@gmail.com
Jhon.sam@example.com
Example@example.org
$

Комментарии:

1. email_filtered=»$(grep -i -o ‘[A-Z0-9._% -] @[ A-Z0-9-] .[A-Z]{2,4}$’ webpage.html )» echo «$email_filtered» Я пыталсятаким образом, но я не получаю никаких данных из webpage.html . Этот файл содержит электронные письма в виде текста. Пожалуйста, помогите мне

2. @samhithgardas что webpage.html содержит? если формат отличается от формата, опубликованного в вопросе (т. Е. По одному адресу в строке), это решение не будет работать. пожалуйста, покажите точное содержимое webpage.html .