AWK 명령은 빈 줄에 대해 "\n"으로 끝나는 줄 바꿈을 무시하고 한 줄에 인쇄합니다.

AWK 명령은 빈 줄에 대해 "\n"으로 끝나는 줄 바꿈을 무시하고 한 줄에 인쇄합니다.

다음 명령을 사용하면 \n모든 줄에 추가되지만 빈 줄은 건너뜁니다.

awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}'

예: 다음을 입력하세요.

George Washington, 1789-1797

John Adams, 1797-1801
Thomas Jefferson, 1801-1809

산출:

George Washington, 1789-1797\nJohn Adams, 1797-1801\nThomas Jefferson, 1801-1809\n

예상 출력: 대\n\n

George Washington, 1789-1797\n\nJohn Adams, 1797-1801\nThomas Jefferson, 1801-1809\n

답변1

NF블록 이전의 조건은 구체적으로 다음과 printf같습니다 .말하다awk는 빈 줄을 건너뜁니다. 그렇게 하기 싫으면 그렇게 하라고 말하지 마세요.

$ awk '{sub(/\r/, ""); printf "%s\\n",$0}' file
George Washington, 1789-1797\n\nJohn Adams, 1797-1801\nThomas Jefferson, 1801-1809\n$

그런데 sub()목적이 DOS 줄 끝을 제거하는 것이라면 이 작업을 sub(/\r$/, "")대신 수행해야 하므로 줄 끝에서 s sub(/\r/, "")만 제거하면 됩니다 .\r

관련 정보