2011-12-28 2 views
1

Windows 스타일의 캐리지 리턴을 제공하기 위해 unix2dos를 통해 실행 된 내 Mac에 파일이 있습니다. 예를 들어, 다음은 파일의 상단 부분 : 내 Mac에서 텍스트 파일을 압축 Windows에서 캐리지 제어를 파괴

$ od -c ../README.txt | head 
... 
0000020             R E A D 
0000040 M E  f i l e  \r \n \r \n F o r 
0000060 c o m p l e t e  i n s t r u c 

는 그럼 난 사용하여 Mac에서 zip 파일을 내장 사자 압축 프로그램입니다. zip 버전 3.0입니다.

그러나이 zip 파일을 Windows에서 열면 \ r 문자가 제거됩니다.

$ od -c README.txt | head 
... 
0000020             R E A D 
0000040 M E  f i l e  \n \n F o r  c o 

그래서 메모장에서 박살났다.

어떻게 이런 일이 발생하지 않도록 할 수 있습니까? 메모장은 Windows에서 .txt 파일의 기본 편집기이기 때문에 사람들은 파쇄 된 버전의 파일을 보게됩니다.

+1

메모장 이외의 편집기를 사용하십니까? : p 아니, 진지하게, 어떤 우편 프로그램을 사용합니까? – fge

+0

질문이 업데이트되었습니다 - Mac에서 내장 zip을 사용하십시오. –

답변

0

아아이 있는지 여부도보고! 근본 원인은 필자의 소스 관리 시스템 (Perforce)이 Windows와 Mac에서 파일을 다르게 표현했기 때문입니다. 위에 표시된 첫 번째 od은 Windows에서 수행되었습니다. 나는 Mac이 동일하다고 생각했지만 그렇지 않았다. 그것은 두 번째 것과 동일했습니다.

내가 윈도우 친화적 인 파일을 만들기 위해 AWK 사용, 단지 Mac에서 내 zip 파일을 제작하기 전에,이 문제를 해결하려면

cat <sourcefile> | awk 'sub("$", "\r")' > README.txt 

(당신은 unix2dos를 사용할 수 있지만, 나는 그에 설치되어 있지 않은 내

+2

Zip 파일을 PERFORCE에 저장 하시겠습니까? 또는 소스 파일을 PERFORCE에 저장 하시겠습니까? 퍼 포스에 소스 파일을 저장하는 경우 퍼 포스의 줄 끝 작동을 구성하고 제어하는 ​​다양한 방법이 있습니다. http://kb.perforce.com/article/63 –

+0

입력 파일 저장 (내 명령 예제의 sourcefile) 위). –

0

Zip 프로그램에 버그가 있습니다. 또한 지퍼 버전 3 (젠투 리눅스, x86_64의)를 사용하고이 문제가 발생하지 않습니다 :

[email protected] ~ $ file input.txt 
input.txt: HTML document, ASCII text, with CRLF line terminators 
[email protected] ~ $ stat --format %s input.txt 
476 
[email protected] ~ $ zip -q input.zip input.txt 
[email protected] ~ $ unzip input.zip 
Archive: input.zip 
replace input.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: y 
    inflating: input.txt    
[email protected] ~ $ stat --format %s input.txt 
476 

어쩌면 우편 프로그램을 업데이트하거나 원래의 소스를 다운로드하고 그들과 함께하려고?

시도하고 당신이 ZIP 또는 ZIPOPT 환경 변수 (나는 안)

관련 문제