Как извлечь доменное имя из адреса электронной почты и добавить его в новый столбец в файле с разделителями вертикальной черты?

No tienes una puerta de enlace predeterminada:

ip r a default via 192.168.43.1

Ni resolver, ya que -Supongo que no tiene un servicio de DNS en ejecución en 127.0.1.1:

echo nameserver 8.8.8.8 >> /etc/resolv.conf

1
16.07.2019, 17:02
3 ответа

Попробуйте это,

awk -F '@' '{print $0"|"$NF}' file

TEST|1234|john.doe@gmail.com|gmail.com
TEST|4533|jeffp12@yahoo.com|yahoo.com
TEST|9030|indoep13@gmx.com|gmx.com
TEST|0903|ramdpe23@gmail.com|gmail.com
4
27.01.2020, 23:30

Пробовал с нижеприведенным скриптом

for i in `cat o.txt`; do y=`echo $i |awk -F "|" '{print $NF}'| awk -F "@" '{print $NF}'`; echo $i | awk -v y="$y"  '{print $0"|"y}'; done

выход

TEST|1234|john.doe@gmail.com|gmail.com
TEST|4533|jeffp12@yahoo.com|yahoo.com
TEST|9030|indoep13@gmx.com|gmx.com
TEST|0903|ramdpe23@gmail.com|gmail.com
-1
27.01.2020, 23:30

Использованиеsed:

$ sed 's/@\(.*\)/&|\1/' file
TEST|1234|john.doe@gmail.com|gmail.com
TEST|4533|jeffp12@yahoo.com|yahoo.com
TEST|9030|indoep13@gmx.com|gmx.com
TEST|0903|ramdpe23@gmail.com|gmail.com

Это будет соответствовать первому символу @в каждой строке и захватывать все после него с помощью группы захвата. Совпадающий текст будет заменен самим собой, за которым следует захваченный текст с символом |в -между ними.

Если ваш файл является текстовым файлом DOS (, как указано в некоторых комментариях ), то вы можете выполнить преобразование в текстовый файл Unix одной и той же командой:

$ sed -e 's/[[:cntrl:]]$//' -e 's/@\(.*\)/&|\1/' file
TEST|1234|john.doe@gmail.com|gmail.com
TEST|4533|jeffp12@yahoo.com|yahoo.com
TEST|9030|indoep13@gmx.com|gmx.com
TEST|0903|ramdpe23@gmail.com|gmail.com

Вторая замена такая же, как и раньше, но первая удалит любой управляющий символ в самом конце строки (это удалит символ возврата каретки в конце каждой строки, если он есть ). Вывод этой последней команды будет текстовым документом Unix независимо от того, был ли исходный файл текстовым файлом DOS или Unix.

0
27.01.2020, 23:30

Теги

Похожие вопросы