cygwin awk는 Windows 줄 구분 기호로 출력됩니다.

cygwin awk는 Windows 줄 구분 기호로 출력됩니다.

zip 항목 목록을 인쇄하고 txt 파일로 전달하는 방법을 찾을 수 있습니다.

unzip -l my.zip | awk '{print $4}' > my.txt

Windows 메모장에서 파일을 열면 my.txt줄 구분 기호가 무시되고 모든 줄이 한 줄로 렌더링됩니다.

이러한 파이프라인 라인에 적절한 라인 구분 기호를 적용하려면 어떻게 해야 합니까?

답변1

처리된 각 라인의 출력은 Unix/Linux 표준인 awk개행 문자( )로 종료됩니다 . \nWindows/DOS에서는 줄 끝을 표시하기 위해 캐리지 리턴과 줄 바꿈이 필요합니다( \r\n). notepad현재 표시되는 모든 Linux 생성 파일이 표시됩니다.

awk이 문제를 해결하려면 s를 s로 unix2dos변환하는 명령 의 출력을 전달하세요 .n\r\n

unzip -l my.zip | awk '{print $4}' |unix2dos > my.txt

awk또는 변수를 사용하여 각 줄의 끝에 출력을 알려주십시오 .\r\nORS

unzip -l my.zip | awk -v ORS='\r\n' '{print $4}' > my.txt

머리글과 바닥글 없이 나열하려면:

unzip -l my.zip | awk -v ORS='\r\n' '{print $4}' | tail -n +4 | head -n -2 > my.txt

또는

또는 zipinfo -1 <zip file>머리글과 바닥글 없이 파일을 나열하려면 (문자 l이 아닌 숫자 1)을 사용하십시오. 여전히 파이프를 통해 연결해야 할 수도 있습니다 unix2dos. zipinfoCygWin에서 사용 가능한 경우 에만 유용합니다.

답변2

출력 파일의 줄 구분 기호를 dos 스타일로 변환했습니다 unix2dos.

$ unix2dos my.txt
unix2dos: converting file cdc_1.1.jar.txt to DOS format...

관련 정보