![긴 파일에서 선택한 행 수를 반복적으로 인쇄하는 방법은 무엇입니까? [복사]](https://linux55.com/image/128556/%EA%B8%B4%20%ED%8C%8C%EC%9D%BC%EC%97%90%EC%84%9C%20%EC%84%A0%ED%83%9D%ED%95%9C%20%ED%96%89%20%EC%88%98%EB%A5%BC%20%EB%B0%98%EB%B3%B5%EC%A0%81%EC%9C%BC%EB%A1%9C%20%EC%9D%B8%EC%87%84%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
5,6,8,9행을 건너뛰고 1,2,3,4,7행을 인쇄하고 파일 끝까지 패턴을 반복할 수 있기를 원합니다.
입력 예:
Line 1
Line 2
Line 3
Line 4
Line 5
Line 6
Line 7
Line 8
Line 9
Line 10
Line 11
Line 12
Line 13
Line 14
Line 15
Line 16
Line 17
Line 18
원하는 출력:
Line 1
Line 2
Line 3
Line 4
Line 7
Line 10
Line 11
Line 12
Line 13
Line 16
Solaris 10, KSH를 사용합니다. nawk 또는 sed 솔루션을 원함
답변1
내가 올바르게 이해했다면 9줄마다 반복되는 패턴을 찾고 있는 것입니다. 노력하다:
$ awk '{r=NR % 9} r>0 && (r<=4 || r==7)' input
Line 1
Line 2
Line 3
Line 4
Line 7
Line 10
Line 11
Line 12
Line 13
Line 16
어떻게 작동하나요?
먼저 모듈로 9로 r=NR % 9
설정된 행 번호를 사용합니다. r
다음으로, 9개 행 중 유지할 행을 선택합니다 r>0 && (r<=4 || r==7)
.