패턴 일치를 위한 sed 쿼리 [닫기]

패턴 일치를 위한 sed 쿼리 [닫기]

내 파일은 다음과 같습니다

cat new:

ALL          ALLOFTHEM    ALL1
OPS     BE2A    OPS1

 ABE    ABE     ABE1

다음 sed 쿼리는 결과의 첫 번째 행을 제공합니다 sed -n '/\([A-Z]\{1,\}\)\1/p' new.

ALL          ALLOFTHEM    ALL1

OPS의 문자 길이도 1보다 크기 때문에 두 번째 줄도 일치할 것이라고 추측합니다.

어떤 아이디어가 있나요?

답변1

OPS의 문자 길이도 1보다 크기 때문에 두 번째 줄도 일치할 것이라고 추측합니다.

그렇다면 두 개 이상의 연속된 대문자가 있는 줄을 일치시키고 싶습니까? 그렇다면 다음을 사용하십시오.

$ sed -n '/[A-Z]\{2,\}/p' new
ALL          ALLOFTHEM    ALL1
OPS     BE2A    OPS1
 ABE    ABE     ABE1


표정이 왜 이렇지 않니? 귀하의 정규식은 다음과 같습니다

\([A-Z]\{1,\}\)\1

이는 두 부분으로 나누어져 있습니다. 첫 번째는 \([A-Z]\{1,\}\)일치하는 것입니다.또는더 많은 대문자. 두 번째 부분은 \1이전 대문자 세트와 일치합니다. 즉, 일치하려면 대문자 패턴을 (중간 문자 없이) 반복해야 합니다. 첫 번째 줄에는 대문자 L다음에 대문자가 있기 때문에 첫 번째 줄에만 일치합니다 L. 이 순서가 포함된 유일한 줄입니다.

관련 정보