У меня довольно неряшливый CSV-файл с ;
как разделитель полей. В поле 1 у меня есть имя, а в поле 3 ИЛИ 4 есть данные адреса, разделенные запятой, с неуказанным количеством записей, в основном включая адрес электронной почты. Итак, это выглядит так:Использование grep внутри awk
Doe, Jon; Some information ; some more information; di: address details, p: () 56789, F: 252470, [email protected]
Miller, Mariella; Some information ; di: other address, p: (09876) 54321, [email protected]
Brown, Sam; Other information ; di: other address with no e-mail, p: (09876) 54321
Я хочу извлечь адреса электронной почты из файла вместе с именами. Я могу получить имена с
BEGIN {FS = ";"}
/@/ {print $1}
можно найти в электронной почте адреса с этой милой Grep:
grep -i -o "[A-Z0-9._%+-]\[email protected][A-Z0-9.-]\+\.[A-Z]\{2,4\}" mylist.csv
Я хотел бы иметь Grep вызывается, когда есть в строке @
, что приводит к выходу, как это:
Doe, Jon, [email protected]
Miller, Mariella, [email protected]
Но я понятия не имею, как я могу называть Grep из AWK.
'awk' может сделать буквально все' grep' может. Нет смысла использовать внешний инструмент. –