解压文本文件后,内容格式发生变化

解压文本文件后,内容格式发生变化

我压缩了一些文本文件并作为附件发送到我的电子邮件中。提取文本文件后,它们的格式发生了变化。

前:

line1
line2
line3 

后:

line1line2line3

有没有办法解压后保​​持原来的格式?

使用的命令:

zip file.zip *.txt

答案1

正如 Panki 所提到的,您正在尝试在 Windows 系统上打开 Linux 文本文件。

简短回答: 您想要的是保存 Windows 使用的带有 CRLF 行终止符(阅读长答案)的文本文件。为此,请使用 gedit(Gnome 的官方文本编辑器)打开文件。

  1. 在右上角击中3条水平线
  2. 另存为...
  3. 在最底部你应该看到一个名为的“菜单”行尾
  4. 选择视窗并点击保存。

你现在应该没事了。

长答案:

每个操作系统(大多数情况下)对换行符使用不同的转义序列

以供参考:

  • Windows 使用 CRLF (\r\n) -hex value=0d 0a
  • MAC OS 使用 CR (\r) - 十六进制值= 0d
  • Linux 使用 LF (\n) - 十六进制值= 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)
  • file2 使用 CR (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

注意最后的区别。

相关内容