텍스트의 정규 표현식 부분을 표시하는 방법

텍스트의 정규 표현식 부분을 표시하는 방법

줄이 다음과 같은 파일이 많이 있습니다.

lotsofblah/XY##_####_morefoo

여기서 #은 숫자입니다. 이제 부분만 보여드리고 싶습니다.

YZ##_####

bash에서는 물론 각각 새로운 줄에 있습니다.

답변1

XY가 임의의 두 글자가 되기를 원한다고 가정하면...

같은 것

grep -Eo "[A-Z]{2}[0-9]{2}_[0-9]{4}" file

[문자 2개][숫자 2개]_[숫자 4개]와 일치합니다.

원한다면 앞에 /가 있고 뒤에 _가 있는지 확인하여 좀 더 정확할 수 있지만 이것이 출발점입니다.

man grep에서 이것을 합치십시오:

-E, --extended-regexp
          Interpret PATTERN as an extended regular expression (see below)

-o, --only-matching
          Show only the part of a matching line that matches PATTERN.

그리고http://www.regular-expressions.info/reference.html

답변2

XY와 YZ가 동일하다고 가정하고 XY로 처리하겠습니다.

egrep "XY[0-9]{2}_[0-9]{4}" filename -o

키는 -o일치하는 텍스트만 표시하는 옵션입니다.

관련 정보