一部のテキストファイルを圧縮して電子メールに添付ファイルとして送信しました。テキストファイルを抽出した後、フォーマットが変更されました。
今後:
line1
line2
line3
後ろに:
line1line2line3
解凍後も元の形式を維持する方法はありますか?
使用されたコマンド:
zip file.zip *.txt
答え1
Pankiが述べたように、WindowsシステムでLinuxテキストファイルを開こうとしています。
短い答え: 必要なのは、Windowsで使用されているCRLF行終端を使用してテキストファイルを保存することです(長い回答を読む)。これを行うには、Gnomeの公式テキストエディタであるgeditを使用してファイルを開きます。
- 右上隅にある3本の横線を押します。
- 別の名前で保存...
- 下部に「メニュー」という項目が表示されます。行末
- 選ぶWindows[保存]をクリックします。
もう大丈夫だと思います。
長い答え:
各オペレーティングシステムは、(ほとんどの)改行文字に異なるエスケープシーケンスを使用します。
参考までに:
- Windows では、CRLF(\r\n) -hex value=0d 0a を使用します。
- MAC OSはCR(\ r)を使用します - 16進値= 0d
- Linux は LF(\n) を使用します。 - 16進値= 0a
したがって、あるオペレーティングシステムから別のオペレーティングシステムに(あなたの場合はLinuxからWindowsに)ファイルを転送するとき、テキストエディタ\r\n
では\n
。しかしそれは真実ではない。
もちろん解決策があります。すべての行の終了を考慮する最新のテキストエディタを使用できます。たとえば、Notepad++、VScode、Atomなどがあります。
このコマンドを使用して、どの回線終了テクノロジが使用されているかを確認できますfile
。
$ file file*
file1: ASCII text
file2: ASCII text, with CR line terminators
file3: ASCII text, with CRLF line terminators
3つのファイルすべてに「test」という単語のみが含まれています。しかし、上記では、結論を導きます。
- file1はLF(Linux)を使用します。
- CRを使用したfile2(MAC OS)
- file3はCRLFを使用します(Windows)。
以下を使用して、テキスト自体の違いを確認することもできます。od
$ od -t x1 file1
0000000 74 65 73 74 0a
0000006
$ od -t x1 file2
0000000 74 65 73 74 0d
0000006
$ od -t x1 file3
0000000 74 65 73 74 0d 0a
0000010
最後に違いを確認してください。