처음부터 첫 번째 빈 줄까지 내용을 삭제합니다.

처음부터 첫 번째 빈 줄까지 내용을 삭제합니다.

텍스트 시작 부분부터 첫 번째 빈 줄까지 내용을 삭제하려고 합니다.

--($:~)-- cat example.txt   
pedro
pablo
juan

francisco 
emiliano
martin

따라서 다음을 제거하겠습니다.

pedro
pablo
juan

나는 이전에 시도했습니다:

sed -n '/^/,/^$/ d' example.txt  

하지만 작동하지 않습니다.

답변1

넌 할 수있어

 sed -n '/^$/{:l; p; n; b l}' file

정상적인 출력을 억제합니다 -n. 패턴과 일치하는 첫 번째 빈 줄에 도달하면 /^$/루프를 시작하여 모든 후속 줄을 인쇄합니다.

답변2

그리고 sed:

sed -n '/^$/,$p' file

또는:

sed -e '/^$/,$!d' file

그리고 awk:

awk '/^$/{p++};p' file

답변3

가장 가까운 것 ksh(필요 ksh93s하거나 그 이상)을 사용하면 다음을 수행할 수 있습니다.

cat <example.txt <#""

답변4

sed -e 1,/^$/c\\ -e '' <infile >outfile

...그것도 작동합니다.

1,/^$/d~와 함께c\<EOF>이 명령은 주소 범위를 정확하게 제거하지 않고 d대신 c전체 블록을 단일 문자열로 일시 중지합니다. 따라서 이것은 출력에서 ​​첫 번째 빈 줄을 제거하지 않습니다. c입력에서 전체 텍스트 블록이 처음 나타나는 부분에 걸리기 때문입니다.(빈 줄의 첫 번째 발생으로 구분됨)빈 줄에.

관련 정보