이메일 주소에서 호스트 이름 검색

이메일 주소에서 호스트 이름 검색

개별 이메일을 보고 호스트 이름을 검색하려고 합니다. 모든 이메일에는 이메일 주소 " [email protected]"가 포함된 "받는 사람:" 섹션이 있습니다. " aol.com"을 (를) 검색하려고 합니다 .

예를 들어:

To: [email protected] (abc123)

To: [email protected],hk (Jim)

To: [email protected]\ (Jim)

예상 출력:

aol.com

yahoo.com,hk

yahoo.com\

답변1

노력하다:

sed 's/.*@\(.*\) .*/\1/g' input

또는:

awk -F '[@ ]' '{print $3}' input

이것은 마지막 공간을 보존합니다.

grep -Eo '@.* ' input

답변2

나는 GNU grep의 perl 호환 정규식을 사용하겠습니다:

grep -oP '(?<=@)\S+'

답변3

간단하게 유지하고 cut을 사용할 수 있습니다.

cut -d'@' -f2

예를 들어 이러한 이메일을 emails.txt라는 대용량 파일에 저장하는 경우:

grep 'To:' emails.txt | cut -d'@' -f2

관련 정보