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