내가 원하는 것은 특정 일치 항목이나 일치 항목 자체 이후의 모든 빈 줄을 제거하는 것입니다.
원본 파일:
line 1
random words
[GROUP 1]
example 1
example 2
example 3
[TITLE]
[TITLE 2]
line 2
line 3
[GROUP 2]
random text...
원하는 결과:
line 1
random words
[GROUP 1]
example 1
example 2
example 3
[TITLE 2]
line 2
line 3
random text...
답변1
단순한sed해결책:
sed -z 's/\[[^]]*\]\n\n\n*//g' file
-z
- 입력을 줄 바꿈 문자 대신 0바이트(ASCII "NUL" 문자)로 끝나는 줄 집합으로 처리합니다.
또는 더 복잡하다앗해결책:
awk '/\[.+\]/{ r=$0; rn=NR; c=0; next }rn && NR-rn==++c{
if(NF) { if(NR-ern!=1) print r; rn=0 } else { ern=NR; next }
}1' file
산출:
line 1
random words
[GROUP 1]
example 1
example 2
example 3
[TITLE 2]
line 2
line 3
random text...