![여러 개의 빈 줄을 비어 있지 않은 특정 줄로 바꾸는 방법은 무엇입니까?](https://linux55.com/image/83348/%EC%97%AC%EB%9F%AC%20%EA%B0%9C%EC%9D%98%20%EB%B9%88%20%EC%A4%84%EC%9D%84%20%EB%B9%84%EC%96%B4%20%EC%9E%88%EC%A7%80%20%EC%95%8A%EC%9D%80%20%ED%8A%B9%EC%A0%95%20%EC%A4%84%EB%A1%9C%20%EB%B0%94%EA%BE%B8%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.png)
샘플 입력은
1
2
3
4
5
6
7
8
9
예상 출력은 다음과 같습니다.
1
2
3
---
4
5
---
6
7
8
---
9
답변1
일방 통행:
cat -s file | sed 's/^$/---/'
고양이 매뉴얼 페이지에서:
-s, --squeeze-blank
never more than one single blank line
cat
빈 줄을 짜낸 후 sed
공백을 다음으로 교체하십시오.---
답변2
AWK의 여러 줄 로깅 기능(빈 RS)을 사용하는 POSIX 호환 방법:
awk 1 RS= ORS='\n---\n' file
끝에 있는 "---" 줄을 제외하면 원하는 것과 동일한 출력이 생성됩니다. 이 차이가 허용되지 않는 경우 sed 필터를 사용하여 제거할 수 있습니다.
... | sed '$d'