本文介绍在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
返回如下图信息:
上面的输出清楚地表明这是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
返回如下图信息:
上面的命令将覆盖原始文件。
如果要保留原始文件,请使用以下命令,这会将转换后的输出另存为新文件:
# 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: 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
相关主题