![sed에서 연속된 빈 줄을 단일 빈 줄로 바꾸는 방법은 무엇입니까?](https://linux55.com/image/228185/sed%EC%97%90%EC%84%9C%20%EC%97%B0%EC%86%8D%EB%90%9C%20%EB%B9%88%20%EC%A4%84%EC%9D%84%20%EB%8B%A8%EC%9D%BC%20%EB%B9%88%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)
나는 연속적인 빈 줄(더 명확하게 말하면 빈 줄만)을 갖고 싶어하는 파일을 가지고 있습니다. 모두 하나로 교체하고 싶습니다.
차라리 sed
(IMHO 이 작업은 awk
사소한 일입니다).
답변1
연속된 빈 줄(0개의 문자 줄)을 압축하려면 다음을 사용할 수 있습니다.N;P;D cycle
:
sed '$!N;/^\n$/!P;D' infile
연속된 빈 줄을 압축하려면 가능한 공백을 고려하여 정규식을 변경하세요.
sed '$!N;/^[[:blank:]]*\n[[:blank:]]*$/!P;D' infile
답변2
당신이 가지고 있다면암소 비슷한 일종의 영양 sed
사용할 수 있는 경우(스크립트와 충돌하지 않음) -z
0으로 구분된 줄 플래그를 사용한 다음 다음과 같이 더 간단한 정규식을 사용할 수 있습니다.
sed -z 's/\n[\n ]*/\n/g' infile
이는-z
아니요POSIX.