阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

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

35次阅读
没有评论

共计 1668 个字符,预计需要花费 5 分钟才能阅读完成。

导读 本文介绍如何在 Unix 和 DOS 格式之间转换文本文件。DOS 文本文件带有回车符(\r)和换行符(\n)作为它们的换行符,而 Unix 文本文件只有(\n)换行符作为换行符。

有多种方法可以将 DOS 文本文件转换为 Unix 格式。但建议使用一个名为 dos2unix / unix2dos 的工具在 DOS 和 Unix 格式之间转换文本文件。

  • dos2unix:
  • unix2dos:
  • tr, awk, sed:

你可以使用 od 命令识别文件是 DOS 格式还是 Unix 格式,如下所示。

[root@server1 ~]# od -bc windows.txt 
0000000 141 163 144 154 146 152 015 012 141 163 144 146 141 163 144 146
          a   s   d   l   f   j  \r  \n   a   s   d   f   a   s   d   f
0000020 015 012 141 163 147 146 015 012 141 163 144 146 015 012 141 163
         \r  \n   a   s   g   f  \r  \n   a   s   d   f  \r  \n   a   s
0000040 144 146 015 012 141 163 144 146 147 144 015 012 144 147
          d   f  \r  \n   a   s   d   f   g   d  \r  \n   d   g
0000056

如何在 Unix 和 DOS 格式之间转换文本文件
上面的输出表示这是一个 DOS 格式的文件,因为它包含了\r\n
如何在 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 格式之间转换文本文件
如果要保留原始文件,请使用以下命令。这会将转换后的输出保存为新文件:

[root@server1 ~]# dos2unix -n windows.txt unix.txt
dos2unix: converting file windows.txt to file unix.txt in Unix format...

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

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

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

[root@server1 ~]# tr -d '\r'  unix.txt

上面命令使用 -d 选项删除 \r 回车符。
如何在 Unix 和 DOS 格式之间转换文本文件
注意:不能使用 tr 命令将文件从 Unix 格式转换为 DOS 格式。

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

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

[root@server1 ~]# awk '{sub("\r$",""); print }' windows.txt > unix.txt

如何在 Unix 和 DOS 格式之间转换文本文件
上面命令使用 awk 命令的 sub()函数,将以 \r 结尾的替换为空。

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

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

[root@server1 ~]# unix2dos unix.txt

如何在 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 格式之间转换文本文件。

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-25发表,共计1668字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中