2011-12-28 5 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 

次に、Lionに組み込まれたzipプログラムを使用してMac上でファイルを圧縮します。 zipバージョン3.0です。

Windowsでこのzipファイルを開くと、\ 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が同じだと思ったが、そうではなかった。それは第二のものと同じでした。あなたがunix2dosといったを使用することができますが、私は私の上にインストールされていることはありません(

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

:ちょうどMac上で私のzipファイルを作成する前に、私は、ファイルのWindowsに優しいを作るためにはawkを使用し、これを解決するには

+2

ZipファイルをPERFORCEに保存していますか?または、ソースファイルをPERFORCEに保存しますか? PERFORCEにソースファイルを保存する場合は、PERFORCEの行終了動作を設定および制御するさまざまな方法があります。http://kb.perforce.com/article/63 –

+0

入力ファイルの保存(コマンドファイルの例のsourcefile上記)を実行します。 –

0

あなたは間違いなくzipプログラムにバグがあります。私はまた、ジップバージョン3(Gentoo Linuxを、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プログラムを更新する、または元のソースをダウンロードして、彼らとしてみてください?

試してみて、あなたはZIPまたはZIPOPT環境変数(私はしないでください)

関連する問題