您是否曾经将在 Linux 系统上创建的文本文件发送给某人,并让他们抱怨它在 macOS 或 Windows 上看起来不对? 这可能是因为这些系统处理行尾的方式不同。 幸运的是,这很容易通过几个实用程序来解决:Dos2Unix 和 Unix2Dos。
行尾有什么问题?
Windows 和 Linux 之间可能使交换文件变得困难的一个区别是它们计算行尾的方式。 这可以追溯到计算机使用电传打字机进行输入和输出的时代,这实际上是自动打字机。
换行符,也称为换行符,将纸张前进一行,回车将移动到行首。 命令行界面继承了这种解释换行符的约定。
Windows 继承了 MS-DOS 将换行符和回车计为一行的约定,而 Linux 则继承了 Unix 将换行符计为新行的传统。
大多数情况下,文本编辑器足够聪明,能够检测在不同系统上创建的文件并相应地调整显示,但您仍可能偶尔会遇到问题。 您可能会尝试运行脚本,但解释器可能会抛出错误,因为它期望行以不同的方式结束。
使用 Dos2Unix 和 Unix2Dos
幸运的是,有几个实用程序可以让您在格式之间转换文件中的行尾。 他们被称为 Dos2Unix 和 Unix2Dos.
尽管这些实用程序在许多 Linux 安装中都很常见,但如果您的系统上没有安装它们,您可以使用默认的包管理器下载它们。
要将在 Windows 系统上创建的文件转换为 Linux,请使用 dos2unix:
dos2unix file
…在哪里 文件 是要转换的文件的名称。 顾名思义,该程序会将文件从 DOS 换行符转换为 Unix 换行符。 如果要转换文件的副本,请使用 -n 选项:
dos2unix -n file1 file2
…在哪里 文件 1 和 文件2 是 原始文件 和 输出文件. unix2dos 命令以相同的方式工作并采用相同的参数。
另一种选择是使用 Linux 或 Windows 上的文本编辑器来转换文件,因为它们还可以检测和更改行结束行为。
现在您的文本文件在任何系统上都可以正常显示
使用这对实用程序,您可以确保任何文本文件都可以在 Windows 或 Linux 上运行。 使用 dos2unix 和 unix2dos 修复换行符现在比以往任何时候都容易。
在现实世界中,Linux 用户和 Windows 用户经常需要共享文件。 幸运的是,现在这样做很容易。