导读:有很多方法可以将 DOS 文本文件转换为 Unix 格式。

本文字数:5083,阅读时长大约:5分钟

https://linux.cn/article-12558-1.html

作者:Magesh Maruthamuthu

译者:geekpi

作为一名 Linux 管理员,你可能已经注意到了一些开发者请求将文件从 DOS 格式转换为 Unix 格式,反之亦然。

这是因为这些文件是在 Windows 系统上创建的,并由于某种原因被复制到 Linux 系统上。

这本身没什么问题,但 Linux 系统上的一些应用可能不能理解这些新的换行符,所以在使用之前,你需要转换它们。

DOS 文本文件带有回车(CR或\r)和换行(LF或\n)一对字符作为它们的换行符,而 Unix 文本只有换行(LF)符。

有很多方法可以将 DOS 文本文件转换为 Unix 格式。

但我推荐使用一个名为dos2unix/unix2dos的特殊工具将文本在 DOS 和 Unix 格式之间转换。

dos2unix:将文本文件从 DOS 格式转换为 Unix 格式。

unix2dos:将文本文件从 Unix 格式转换为 DOS 格式。

tr、awk和sed 命令:这些可以用于相同的目的。

使用od(八进制转储(octal dump))命令可以很容易地识别文件是 DOS 格式还是 Unix 格式,如下图所示:

# od -bc windows.txt

0000000 125 156 151 170 040 151 163 040 141 040 146 162 145 145 040 157

U n i x i s a f r e e o

0000020 160 145 156 163 157 165 162 143 145 040 157 160 145 162 141 164

p e n s o u r c e o p e r a t

0000040 151 156 147 040 163 171 163 164 145 155 015 012 123 165 160 145

i n g s y s t e m \r \n S u p e

0000060 162 040 143 157 155 160 165 164 145 162 163 040 141 162 145 040

r c o m p u t e r s a r e

0000100 162 165 156 156 151 156 147 040 157 156 040 125 116 111 130 015

r u n n i n g o n U N I X \r

0000120 012 071 065 045 040 157 146 040 167 145 142 163 151 164 145 163

\n 9 5 % o f w e b s i t e s

0000140 040 141 162 145 040 162 165 156 156 151 156 147 040 157 156 040

a r e r u n n i n g o n

0000160 114 151 156 165 170 040 117 123 015 012 101 156 171 164 150 151

L i n u x O S \r \n A n y t h i

0000200 156 147 040 143 141 156 040 142 145 040 144 157 156 145 040 157

n g c a n b e d o n e o

0000220 156 040 114 151 156 165 170 015 012

n L i n u x \r \n

0000231

上面的输出清楚地表明这是一个 DOS 格式的文件,因为它包含了转义序列\r\n。

同时,当你在终端上打印文件输出时,你会得到下面的输出:

# 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

0000000 125 156 151 170 040 151 163 040 141 040 146 162 145 145 040 157

U n i x i s a f r e e o

0000020 160 145 156 163 157 165 162 143 145 040 157 160 145 162 141 164

p e n s o u r c e o p e r a t

0000040 151 156 147 040 163 171 163 164 145 155 012 123 165 160 145 162

i n g s y s t e m \n S u p e r

0000060 040 143 157 155 160 165 164 145 162 163 040 141 162 145 040 162

c o m p u t e r s a r e r

0000100 165 156 156 151 156 147 040 157 156 040 125 116 111 130 012 071

u n n i n g o n U N I X \n 9

0000120 065 045 040 157 146 040 167 145 142 163 151 164 145 163 040 141

5 % o f w e b s i t e s a

0000140 162 145 040 162 165 156 156 151 156 147 040 157 156 040 114 151

r e r u n n i n g o n L i

0000160 156 165 170 040 117 123 012 101 156 171 164 150 151 156 147 040

n u x O S \n A n y t h i n g

0000200 143 141 156 040 142 145 040 144 157 156 145 040 157 156 040 114

c a n b e d o n e o n L

0000220 151 156 165 170 012

i n u x \n

0000225

上面的命令将覆盖原始文件。

如果你想保留原始文件,请使用以下命令。这将把转换后的输出保存为一个新文件。

# dos2unix -n windows.txt unix.txt

dos2unix: converting file windows.txt to file unix.txt in Unix format …

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

正如文章开头所讨论的,你可以如下所示使用tr命令将 DOS 文件转换为 Unix 格式。

Syntax: tr -d '\r'output_file

下面的tr命令将 DOS 格式的文件windows.txt转换为 Unix 格式文件unix.txt。

# tr -d '\r'unix.txt

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

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

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

Syntax: awk '{ sub("\r$", ""); print }' source_file.txt > output_file.txt

以下awk命令将 DOS 文件windows.txt转换为 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 …

2a)如何使用 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

via:https://www.2daygeek.com/how-to-convert-text-files-between-unix-and-dos-windows-formats/

作者:Magesh Maruthamuthu选题:lujun9972译者:geekpi校对:wxy

本文由LCTT原创编译,Linux中国荣誉推出

linux怎么把dos改成unix_如何将文本文件在 Unix和DOS格式之间转换相关推荐

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

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

  2. cdr存成html格式的文件格式,CDR必备!CDR保存与各种格式之间转换!-cdr文件用什么打开...

    cdr功能毋庸置疑的强悍.只要发挥得当工资与地位自然是会让你得到你想要的.但在新手操作的时候总会出现这些或者那些一些问题,下面咱们就来总结一下cdr的打开方式与各种格式之间的转换吧! 一.cdr文件打 ...

  3. linux怎么把dos改成unix_dos2unix命令 – 将DOS格式的文本文件转换成UNIX格式

    dos2unix命令用来将DOS格式的文本文件转换成UNIX格式的(DOS/MAC to UNIX text file format converter).DOS下的文本文件是以\r\n作为断行标志的 ...

  4. Linux 将普通用户改成root用户

    举例说明:将普通用户 tom 改成为 root 用户 方法1: (尚未亲身试验) 修改 /etc/sudoers 文件,找到下面一行,把前面的注释(#)去掉 ## Allows people in g ...

  5. linux将ipv6地址改成ipv4,虚拟机ip地址从ipv6改为ipv4相关问题

    ERROR ITMS-90167: "No .app bundles found in the package"错误 ERROR ITMS-90167: " ...

  6. linux将中文语言改成英文版,将Linux中文语言修改成英文的具体操作方法及报错解决...

    -bash: warning: setlocale: LC_CTYPE: cannot change locale (EN_US.UTF-8) 把linux系统从中文设置英文字符集后发生以下报错 首先 ...

  7. linux 更新yum源 改成阿里云源

    1.备份 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 2.下载新的CentOS-Base ...

  8. 将linux中显示中文改成英文显示

    编辑/etc/sysconfig/i18n这个文件,原内容如下: LANG="zh_CN.UTF-8" SYSFONT="latarcyrheb-sun16" ...

  9. 7-7 字符串中的大写字母改成小写字母 (10 分)

    把一个字符串中的大写字母改成小写字母,其他字符不变. 输入格式: 在 一行中输入长度小于20的字符串.在字符串中不要出现换行符,空格,制表符. 输出格式: 直接输出变化后的字符串. 输入样例: asD ...

  10. 7-9 把字符串中的大写字母改成小写字母 (10分)

    把字符串中的大写字母改成小写字母,其他字符不变. 输入格式: 输入一个长度不超过20的包含大小写母和数字的字符串. 输出格式: 输出大写字母改成小写字母后的字符串. 输入样例: 在这里给出一组输入.例 ...

最新文章

  1. 风险管理、收尾管理和知识产品管理
  2. linux 后台任务 运行 关闭 查看
  3. (chap4 Http状态码) 4XX
  4. Scala模式匹配,case 字符串,case 匹配类型,case 匹配数组,case 匹配List,case 匹配元组,case匹配case class和case object
  5. 操作系统难点解析之进程和线程
  6. 这篇文章,专治MQ中间件各种疑难杂症
  7. 更改了Composer DSN密码之后View Composer服务启动失败
  8. 14-1 获得初始页面内容
  9. C++::My Effective C++
  10. iTOP4412 gdbserver安装
  11. kernel命令行参数(grub启动项参数)
  12. 怎么使用CAD编辑工具将图纸中的文本对齐
  13. 1130. 【NOIP2005PJ】循环
  14. 直接反投影 matlab,直接反投影法.ppt
  15. CSS3动画实现高亮光弧效果,循环闪动效果
  16. 有一台服务器可以做哪些很酷的事情·2
  17. 用鲁迅的四本书来形容大学四年~
  18. 详解设置路由导航的两种方法
  19. 2019年肖秀荣命题人讲真题上下两册【全】
  20. web前端开发基础班课程大纲

热门文章

  1. 全文检索——Lucene
  2. Spring Boot 项目参数校验的常见使用场景
  3. GoLand:Cannot resolve symbol
  4. 编码规则的发展历程(通俗版)
  5. 培养创造性思维的20个技巧!
  6. 互联网人用什么软件画出大神级别的架构图?如何画出顶级架构图?
  7. python最大分词_北大开源了Python中文分词工具包,准确度远超Jieba
  8. 【数学史】大富翁的概率
  9. Windows编程 DirectInput 鼠标和键盘的输入
  10. 使用esp32 作为蓝牙鼠标和键盘以及坑