grep을 사용하여 파일에서 이메일 주소를 가져오거나 정규식이 작동하지 않습니까?

grep을 사용하여 파일에서 이메일 주소를 가져오거나 정규식이 작동하지 않습니까?

그래서 다음과 같은 이메일이 포함된 파일이 있습니다.

[email protected]:theirUsername

[email protected]:theirUsername

...

PA로 시작하고 임의의 6개 문자, @gmail.com, 다음과 같은 이메일을 추출하고 싶습니다. 사용자 이름은 사용자 이름이 무엇인지는 중요하지 않습니다.

나는 이것을 사용하려고합니다 :

egrep "^PA[a-zA-Z0-9-.+_]{6}@gmail.com:[a-zA-Z0-9-.+_]+"

grep으로 시도했는데 여전히 작동하지 않는데 작동하지 않나요? 오랫동안 egrep에 정규식을 사용하지 않았고 매뉴얼을 읽어도 도움이 되지 않았습니다. 여기서 제가 뭘 잘못하고 있는 걸까요? 올바른 입력 방법은 무엇입니까?

답변1

정말로 "임의의 6개 문자"만 원하고 그 뒤에 오는 내용은 신경 쓰지 않는다면 :쉽게 단순화할 수 있습니다. :뒤에 오는 내용을 일치시키려고 하지 말고 .PA 뒤의 문자에 a를 사용하세요.

egrep '^PA.{6}@gmail.com:'

예를 들어

% cat f
hello
[email protected]:jgkfd
[email protected]
[email protected]:

% egrep '^PA.{6}@gmail.com:' f
[email protected]:jgkfd

관련 정보