如何使用 Dos2Unix 和 Unix2Dos 修复文本文件中的换行符

您是否曾经将在 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 用户经常需要共享文件。 幸运的是,现在这样做很容易。