이름과 공백이 있는 파일에서만 이메일을 삭제하는 방법

이름과 공백이 있는 파일에서만 이메일을 삭제하는 방법

나는 다음과 같은 파일 이름을 가지고 있습니다. emaillist.txt:

[email protected]
[email protected]
Ilias Magkakos [email protected]
Nick Pipshow [email protected]
Don Quixote [email protected] 
Crazy Priest [email protected]
Fishroe Salad [email protected]
TaPanta Ola [email protected]
Laertis George [email protected]
Thiseas Sparrow [email protected]
Black Dreamer [email protected]
Callme Daddy [email protected]
Aggeliki Lykolouli [email protected]
Kompinadoros Yannnnis [email protected]
Serafino Titamola [email protected]
Joe Hard [email protected]
Bond James [email protected]
Endof Text [email protected]

파일에 이메일만 보관하고 이름과 성을 모두 삭제하고 싶습니다.

답변1

여기에서 이메일 주소는 항상 각 줄의 공백으로 구분된 마지막 필드인 것처럼 보이므로 다음과 같이 할 수 있습니다.

awk '{print $NF}' < emaillist.txt

또는 이메일 주소 뒤에 공백이 없으면 각 줄의 마지막 공백까지 모두 제거합니다.

sed 's/.*[[:space:]]//' < emaillist.txt

@최소한 하나의 문자를 포함하는 공백으로 구분된 모든 단어를 검색하려면 다음과 같습니다(GNU grep또는 호환 사용).

grep -o '[^[:space:]]*@[^[:space:]]*' < emaillist.txt

관련 정보