내 파일은 다음과 같습니다
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
. 이 순서가 포함된 유일한 줄입니다.