如何在Linux中安装和使用dos2unix命令?

不同的操作系统,如Linux和Windows,有不同的文本文件格式 彼此不兼容。在使用这些平台编辑和读取文本文件时会出现问题。如果我们想在Linux中使用在Windows或MS-DOS环境中创建或编辑的文本文件,我们需要使用 dos2unix 工具。

null

安装dos2unix

作为 dos2unix 工具是一个非常简单的工具,我们可以为不同的Linux发行版安装它,如下面所示。

Ubuntu、Debian、Mint、Kali

我们将使用 apt 指挥与控制 dos2unix 安装程序包名称。

$ sudo apt install dos2unix
dos2unix Ubuntu, Debian, Mint, Kali
dos2unix Ubuntu、Debian、Mint、Kali

软呢帽、CentOS、RedHat

我们将使用 dnf 命令如下。

$ sudo dnf install dos2unix
dos2unix Fedora, CentOS, RedHat
dos2unix软呢帽、CentOS、RedHat

隐藏字符问题

如前所述 有些角色 不用于Linux文本文件,但用于Windows文本文件。

  • 在Windows中,行尾由回车’CR’后跟换行符’LF’指定,但在Linux中,只使用换行符’LF’。
  • Windows文件的默认编码是UTF-16,但在Linux中使用UTF-8
  • 二进制文件将自动跳过

打印给定的文件编码和类型

我们将从列表或打印开始 给定的文件 编码类型和行终止符类型。我们将使用Linux file 提供 这些信息。

$ file a.txt
Print Given File Encoding and Type
打印给定的文件编码和类型

我们可以看到文件 a.txt 是用 ISO-8859 并拥有 CRLF 或Windows行终止符。

从DOS转换为Unix格式

我们将从一个简单的例子开始,在这里我们将转换在Windows或MS-DOS中创建的文件 环境命名 a.txt 在Linux环境中使用的文件。 a.txt 将转换为相同的文件名。

$ dos2unix a.txt
Convert From DOS To Unix Format
从DOS转换为Unix格式

在与客户核实后 file 命令我们可以看到,它被称为没有CRLF行终止符的文本文件。

相关文章: 什么是磁盘操作系统(DOS)?

指定转换模式

在转换时,有不同的转换模式可供选择 关于转换。我们可以使用以下方法 选项和转换模式。

  • `-iso`将从默认代码页转换为Unix拉丁语-1
  • `-850`将从DOS CP850转换为Unix Latin-1
  • `-1252`将从Windows CP1252转换为Unix UTF-8或Unicode

在本例中,我们将使用 -iso 选项。

$ dos2unix -iso a.txt
Specify Conversion Mode
指定转换模式

我们可以看到在转换过程中提供了详细的信息。

保留旧文件的日期戳

时间戳是文件属性,它包含创建时间、修改时间、访问时间等信息。当将文本文件从DOS格式转换为Linux格式时,这些信息将被更改。我们可以用 -k 选项如下。

$ dos2unix -k a.txt

指定 新文件名

到目前为止,我们已转换文件和替换。我们可以指定一个新的文件名,其中转换后的文件内容将写入这个新文件,而旧文件将保持不变。我们将使用 -o 选项并指定新文件名。

在本例中,我们将创建新转换的文件名 b.txt .

$ dos2unix -n a.txt b.txt
Specify New File Name
指定 新文件名

带find命令的递归转换

如果有很多文件需要转换成Unix或Linux文本文件格式,那么将它们逐个转换是一件很琐碎的工作。我们需要对所有文件执行批量操作。我们可以用 find 命令,该命令将对指定为 txt .

在本例中,我们将找到用指定的所有文本文件 -name *.txt 在当前工作目录中 . 然后跑 dos2unix 使用 xargs 命令。

$ find . -name "*.txt" | xargs dos2unix

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享