
샘플 파일 내용:
display this line
1111 aaaa
1111 aaaa
1111 aaaa
1111 aaaa
don't display this line
1111
1111
출력은 다음과 같아야합니다.display this line
답변1
확장 정규식 모드에서 GNU sed 사용:
$ sed -Ene '
$!N;$!N;$d
/^(.*)(\n\1){2}$/!D
n;p
' file
display this line
패턴 공간에는 항상 3줄을 유지하세요. 패턴 공간의 3개 행이 모두 동일하다는 것을 확인할 때까지 패턴 공간에서 맨 위 행을 계속 잘라내거나 eof를 눌러 상점을 닫고 종료합니다.
답변2
질문을 완전히 바꾸신 것 같습니다. GNU sed
sed -nre '
$!N
:loop
$bend
N
/(\n[^\n]*)\1$/bloop
:end;h;s/(.*)\n.*/\1/
s/^//;treset
:reset;s/\n/&/3;g;TD
P;s/.*\n/\n/;:D;D
' file
display this line
답변3
uniq -c
여기에 매우 도움이 됩니다:
$ uniq -c file | tac | awk '$1 >= 3 {getline; print substr($0, 9)}' | tac
display this line
- 연속된 동일한 행 수 계산
- 출력 반전
- 원하는 반복 횟수가 있는 행을 찾습니다.
- 다음 줄을 가져와서 계산하지 않고 인쇄하세요
- 출력을 다시 반전시키세요.
한 가지 질문: 파일에 다음이 포함되어 있으면 어떻게 됩니까?
a
bbb
bbb
bbb
ccc
ccc
ccc
d
출력하시겠습니까?a
그리고 bbb
?