云网牛站
所在位置:首页 > Linux教程 > 在Linux上用dos2unix及unix2dos在DOS和Unix格式之间转换文本文件

在Linux上用dos2unix及unix2dos在DOS和Unix格式之间转换文本文件

2020-09-06 11:14:10作者:赖鑫全稿源:云网牛站

本文介绍在Linux系统上安装dos2unix的方法,和使用dos2unix及unix2dos在DOS(Windows)和Unix格式之间转换文本文件。

 

前言

作为Linux管理员,您可能已经注意到开发人员提出的一些将文件从DOS格式转换为Unix格式的请求,这是因为这些文件是由于某种原因在Windows系统上创建并复制到Linux系统的。不过Linux系统上的某些应用程序可能不理解这些新的字符行,因此您需要在使用前进行转换。

DOS文本文件带有回车符(CR或\r)和换行符(LF或\n)对作为换行符,而Unix文本文件仅将换行符作为换行符。

您可以通过多种方式将DOS文本文件转换为Unix格式。但是我建议使用一个名为dos2unix/unix2dos的特殊实用程序在DOS和Unix格式之间转换文本文件。

dos2unix:将文本文件从DOS格式转换为Unix格式。

unix2dos:将文本文件从Unix格式转换为DOS格式。

另外,tr、awk和sed命令:这些命令可用于相同目的。

您可以使用od(八进制转储)命令轻松地确定文件是DOS格式还是Unix格式,如下所示:

# od -bc windows.txt

参考:od命令_Linux od命令使用详解:输出文件的八进制、十六进制等格式编码的字节

返回如下图信息:

在Linux上用dos2unix及unix2dos在DOS和Unix格式之间转换文本文件

上面的输出清楚地表明这是DOS格式的文件,因为它包含转义序列\r\n。

同时,在终端上打印文件输出时,运行cat windows.txt命令将获得以下输出:

# cat windows.txt

Unix is a free opensource operating system

Super computers are running on UNIX

95% of websites are running on Linux OS

Anything can be done on Linux

 

在Linux上安装dos2unix的方法

可以从发行官方存储库中轻松安装dos2unix。

对于RHEL、CentOS 6/7系统,请使用yum命令安装dos2unix:

$ sudo yum install -y dos2unix

对于RHEL、CentOS 8和Fedora系统,使用dnf命令安装dos2unix:

$ sudo yum install -y dos2unix

对于基于Debian的系统,请使用apt命令或apt-get命令安装dos2unix:

$ sudo apt-get update

$ sudo apt-get install dos2unix

对于openSUSE系统,请使用zypper命令安装dos2unix:

$ sudo zypper install -y dos2unix

 

1、如何将DOS文件转换为UNIX格式

以下命令将“windows.txt”文件从DOS转换为Unix格式。

该文件的修改是从文件的每一行中删除“\r”:

# dos2unix windows.txt

返回如下信息:

dos2unix: converting file windows.txt to Unix format …

运行以下命令:

# cat windows.txt

返回如下图信息:

在Linux上用dos2unix及unix2dos在DOS和Unix格式之间转换文本文件

上面的命令将覆盖原始文件。

如果要保留原始文件,请使用以下命令,这会将转换后的输出另存为新文件:

# dos2unix -n windows.txt unix.txt

返回如下信息:

dos2unix: converting file windows.txt to file unix.txt in Unix format …

1]、如何使用tr命令将DOS文件转换为UNIX格式

如本文开头所述,您可以使用tr命令将DOS文件转换为Unix格式,如下所示:

Syntax: tr -d '\r' < source_file > output_file

下面的tr命令将“windows.txt” DOS文件转换为Unix格式的文件“unix.txt”:

# tr -d '\r' < windows.txt >unix.txt

注意:您不能使用tr命令将文件从Unix格式转换为Windows(DOS)。

2]、如何使用awk命令将DOS文件转换为UNIX格式

使用以下awk命令格式将DOS文件转换为Unix格式:

Syntax: awk '{ sub("\r$", ""); print }' source_file.txt > output_file.txt

下面的awk命令将“windows.txt” DOS文件转换为Unix格式的文件“unix.txt”:

# awk '{ sub("\r$", ""); print }' windows.txt > unix.txt

 

2、如何将UNIX文件转换为DOS格式

当您将文件从UNIX转换为DOS格式时,它将在每行中添加一个回车符(CR或\r):

# unix2dos unix.txt

参考:unix2dos命令_Linux unix2dos命令使用详解:转为DOS格式

返回如下信息:

unix2dos: converting file unix.txt to DOS format …

此命令将保留原始文件:

# unix2dos -n unix.txt windows.txt

返回如下信息:

unix2dos: converting file unix.txt to file windows.txt in DOS format …

下面将介绍如何使用awk命令将UNIX文件转换为DOS格式。

使用以下awk命令格式将UNIX文件转换为DOS格式:

Syntax: awk 'sub("$", "\r")' source_file.txt > output_file.txt

下面的awk命令将“unix.txt”文件转换为DOS格式文件“windows.txt”:

# awk 'sub("$", "\r")' unix.txt > windows.txt

 

相关主题

awk命令_Linux awk命令使用详解:文本与数据进行处理的编程语言

精选文章
热门文章