grep [az]는 1개의 문자를 생성합니다.

grep [az]는 1개의 문자를 생성합니다.

두 개의 인식된 문자가 포함된 특정 문자열을 찾기 위해 grep을 시도하고 있습니다. 예는 다음과 같습니다.

grep -rhIo '[a-zA-z]@[a-zA-z]\.com]

입력 파일 예:

name:phone:[email protected]

이론적으로는 다음과 같이 출력되어야 합니다.

[email protected]

그러나 그것은 단지 출력됩니다

e@e

그렇다면 az가 단지 한 문자가 아니라 무한한 길이일 수 있다는 것을 어떻게 보여줘야 할까요?

답변1

게시한 예제에서는 사용 하지 않을 것입니다. grep간단하고 다음과 같이 처리할 수 있습니다 cut.

$ echo name:phone:[email protected] | rev | cut -d: -f1 | rev
[email protected]

편집하다:

하지만 원한다면 grep다음과 같을 것입니다.

$ echo name:phone:[email protected] | grep -oE '[a-zA-Z]+@[a-zA-Z]+\.com'
[email protected]

이는 정규 표현식의 이전 문자를 +나타내며 올바르게 작동하려면 grep과 함께 사용해야 합니다.one or more instances-E

-E, --extended-regexp

      Interpret PATTERN as an extended regular expression (ERE, see below).
      (-E is specified by POSIX.)

관련 정보