如何在|如何在 Unix 和 DOS 格式之间转换文本文件

本文介绍如何在 Unix 和 DOS 格式之间转换文本文件。DOS 文本文件带有回车符( \r )和换行符( \n )作为它们的换行符,而 Unix 文本文件只有( \n )换行符作为换行符。
有多种方法可以将 DOS 文本文件转换为 Unix 格式。但建议使用一个名为 dos2unix / unix2dos 的工具在 DOS 和 Unix 格式之间转换文本文件。
如何在|如何在 Unix 和 DOS 格式之间转换文本文件
文章图片

dos2unix:
unix2dos:
tr, awk, sed:
你可以使用od命令识别文件是 DOS 格式还是 Unix 格式,如下所示。
【如何在|如何在 Unix 和 DOS 格式之间转换文本文件】[root@server1 ~]# od -bc windows.txt
0000000 141 163 144 154 146 152 015 012 141 163 144 146 141 163 144 146

asdlfj\r\nasdfasdf

0000020 015 012 141 163 147 146 015 012 141 163 144 146 015 012 141 163
\r\nasgf\r\nasdf\r\nas

0000040 144 146 015 012 141 163 144 146 147 144 015 012 144 147
df\r\nasdfgd\r\ndg

0000056
如何在 Unix 和 DOS 格式之间转换文本文件如何在 Unix 和 DOS 格式之间转换文本文件
上面的输出表示这是一个 DOS 格式的文件,因为它包含了\r\n。
如何在 Unix 和 DOS 格式之间转换文本文件如何在 Unix 和 DOS 格式之间转换文本文件
如何在 Linux 上安装 dos2unix
CentOS中安装dos2unix:
[root@server1 ~]# yum -y install dos2unix
Ubuntu中安装dos2unix:
$ sudo apt install dos2unix
如何将 DOS 文件转换为 UNIX 格式
以下命令将“windows.txt”文件从 DOS 格式转换为 Unix 格式。这个文件的修改就是把文件每一行的“\r”去掉。
[root@server1 ~]# dos2unix windows.txt
dos2unix: converting file windows.txt to Unix format...
使用dos2unix命令将覆盖原始文件。
使用od命令查看,可以看到\r\n已经转换为\n了。
如何在 Unix 和 DOS 格式之间转换文本文件如何在 Unix 和 DOS 格式之间转换文本文件
如果要保留原始文件,请使用以下命令。这会将转换后的输出保存为新文件:
[root@server1 ~]# dos2unix -n windows.txt unix.txt
dos2unix: converting file windows.txt to file unix.txt in Unix format...
如何在 Unix 和 DOS 格式之间转换文本文件如何在 Unix 和 DOS 格式之间转换文本文件
如何使用 tr 命令将 DOS 文件转换为 UNIX 格式
可以使用 tr 命令将 DOS 文件转换为 Unix 格式,如下所示:
[root@server1 ~]# tr -d '\r' < windows.txt > unix.txt
上面命令使用-d选项删除\r回车符。
如何在 Unix 和 DOS 格式之间转换文本文件如何在 Unix 和 DOS 格式之间转换文本文件
注意:不能使用 tr 命令将文件从 Unix 格式转换为 DOS 格式。
如何使用 awk 命令将 DOS 文件转换为 UNIX 格式
以下使用 awk 命令格式将 DOS 文件转换为 Unix 格式:
[root@server1 ~]# awk '{ sub("\r$", ""); print }' windows.txt > unix.txt
如何在 Unix 和 DOS 格式之间转换文本文件如何在 Unix 和 DOS 格式之间转换文本文件
上面命令使用awk命令的sub()函数,将以\r结尾的替换为空。
如何将 UNIX 文件转换为 DOS 格式
当将文件从 UNIX 转换为 DOS 格式时,它会在每一行中添加一个回车符( \r )。
[root@server1 ~]# unix2dos unix.txt
如何在 Unix 和 DOS 格式之间转换文本文件如何在 Unix 和 DOS 格式之间转换文本文件
上面命令操作之后,可以看到将unix格式的转换成dos格式了。
如果需要保留原文件,可以使用-n选项。
[root@server1 ~]# unix2dos -n unix.txt windows.txt
unix2dos: converting file unix.txt to file windows.txt in DOS format...
如何使用 awk 命令将 UNIX 文件转换为 DOS 格式
以下使用 awk 命令将 UNIX 文件转换为 DOS 格式。下面使用 awk 命令将“unix.txt”文件转换为 DOS 格式文件“windows.txt”。
[root@server1 ~]# awk 'sub("$", "\r")' unix.txt > windows.txt
如何在 Unix 和 DOS 格式之间转换文本文件如何在 Unix 和 DOS 格式之间转换文本文件
总结
本文介绍如何在 Unix 和 DOS 格式之间转换文本文件。

    推荐阅读