개별 이메일을 보고 호스트 이름을 검색하려고 합니다. 모든 이메일에는 이메일 주소 " [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