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

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

[[429694]]

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

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

  • dos2unix
  • unix2dos
  • tr, awk, sed

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

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

上面的输出表示这是一个 DOS 格式的文件,因为它包含了\r\n。

如何在 Linux 上安装 dos2unix

CentOS中安装dos2unix:

  1. [root@server1 ~]# yum -y install dos2unix 

Ubuntu中安装dos2unix:

  1. $ sudo apt install dos2unix 

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

以下命令将“windows.txt”文件从 DOS 格式转换为 Unix 格式。这个文件的修改就是把文件每一行的“\r”去掉。

  1. [root@server1 ~]# dos2unix windows.txt  
  2. dos2unix: converting file windows.txt to Unix format... 

使用dos2unix命令将覆盖原始文件。

使用od命令查看,可以看到\r\n已经转换为\n了。

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

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

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

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

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

上面命令使用-d选项删除\r回车符。

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

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

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

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

上面命令使用awk命令的sub()函数,将以\r结尾的替换为空。

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

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

  1. [root@server1 ~]# unix2dos unix.txt 

上面命令操作之后,可以看到将unix格式的转换成dos格式了。

如果需要保留原文件,可以使用-n选项。

  1. [root@server1 ~]# unix2dos -n unix.txt windows.txt  
  2. unix2dos: converting file unix.txt to file windows.txt in DOS format... 

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

以下使用 awk 命令将 UNIX 文件转换为 DOS 格式。下面使用 awk 命令将“unix.txt”文件转换为 DOS 格式文件“windows.txt”。

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

总结

本文介绍如何在 Unix 和 DOS 格式之间转换文本文件。如果对你有帮助的话点个[在看]后,分享到朋友圈吧~

本文转载自微信公众号「 Linux就该这么学」,可以通过以下二维码关注。转载本文请联系 Linux就该这么学公众号。

 

责任编辑:武晓燕 来源: Linux就该这么学
相关推荐

2020-08-28 18:00:29

UnixDOS格式转换

2010-04-30 17:38:31

Unix文本

2022-07-02 15:06:06

Pandoc文件Markdown

2023-05-17 18:45:56

Linux文件

2011-04-08 10:16:13

文本文件ACCESS数据库

2021-11-29 09:46:11

FileReaderJava开发

2009-08-06 18:33:45

C#处理文本文件

2009-09-02 19:13:08

C#处理文本文件

2010-01-15 10:05:35

VB.NET文件对象

2009-08-26 11:53:56

C#打印文本文件

2009-09-02 19:08:03

C#实现读取文本文件

2009-09-04 15:56:35

写入文本文件

2015-06-17 14:28:15

Java查询处理方法

2014-03-11 10:11:33

Linux命令more命令文本文件

2009-08-20 09:15:20

C#操作文本文件

2009-10-28 13:03:54

2009-08-19 17:44:15

C#操作文本文件

2010-02-01 14:26:50

C++读写文本文件

2009-08-20 10:17:27

C#操作文本文件

2022-09-29 10:01:05

Go编程语言文本文件
点赞
收藏

51CTO技术栈公众号