![grep을 사용하여 파일에서 이메일 주소를 가져오거나 정규식이 작동하지 않습니까?](https://linux55.com/image/141510/grep%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%ED%8C%8C%EC%9D%BC%EC%97%90%EC%84%9C%20%EC%9D%B4%EB%A9%94%EC%9D%BC%20%EC%A3%BC%EC%86%8C%EB%A5%BC%20%EA%B0%80%EC%A0%B8%EC%98%A4%EA%B1%B0%EB%82%98%20%EC%A0%95%EA%B7%9C%EC%8B%9D%EC%9D%B4%20%EC%9E%91%EB%8F%99%ED%95%98%EC%A7%80%20%EC%95%8A%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
그래서 다음과 같은 이메일이 포함된 파일이 있습니다.
[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