
개별 이메일을 살펴보고 호스트 이름을 검색하려고 합니다. 각 이메일에는 이메일 주소가 " [email protected]
"인 To: 섹션이 있습니다. " 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