`
ihuashao
  • 浏览: 4720327 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

DOS与Linux的换行符

阅读更多

我们在第7章谈到cat时,曾经提到过DOS与 Linux换行符的不同。我们利用cat -A来观察以DOS(Windows系统)建立的特殊文件格式,也可以发现,在DOS使用的换行符为 ^M$,我们称为CR与LF两个符号。而在Linux中,则仅有LF ($) 这个换行符。这个换行符对于Linux的影响很大。

我们说过,在开始执行Linux命令时,它的判断依 据是“Enter”,而Linux的Enter为LF符号。不过,由于DOS的换行符是CRLF,就是多了一个 ^M的符号,在这样的情况下,如果是一个shell脚本的程序文件,将可能造成“程序无法执行”的状态,因为它会误判程序的命令内容。

怎么办?很简单,将格式转换为Linux即可。要以vi进入该文件,然后一个一个地删除CR吗?当然不是。我们可以通过简单的命令来进行格式的转换。

[root@linux ~]# dos2unix [-kn] file [newfile]

[root@linux ~]# unix2dos [-kn] file [newfile]

参数:

-k : 保留该文件原来的mtime时间格式(不更新文件上次内容经过修改的时间)

-n : 保留原来的旧文件,将转换后的内容输出到新文件,如:dos2unix -n old new

范例:

范例一:将提供的hosts文件格式更新为dos格式。

[root@linux ~]# unix2dos -k hosts

unix2dos: converting file hosts to DOS format ...

# 此时hosts文件的时间不会改变,但内容主要将换行符修改成为DOS的CRLF了。

范例二:将范例一已经变成DOS格式的hosts改名为hosts.dos,并且转换Linux

格式到hosts.linux

[root@linux ~]# mv hosts hosts.dos

[root@linux ~]# dos2unix -k -n hosts.dos hosts.linux

dos2unix: converting file hosts.dos to file hosts.linux in UNIX format ...

[root@linux ~]# ll

-rw-r--r-- 1 root root 288 Aug 1 13:30 hosts.dos

-rw------- 1 root root 279 Aug 1 13:30 hosts.linux

# 由于DOS格式中多了CR字符,所以,文件比较大。

因为换行符以及DOS与Linux操作系统中一些字 符的定义不同,因此,建议不要在Windows系统中将文件编辑好之后,才上传到Linux系统,这样容易发生错误。而且,如果在不同的系统之间复制一些 纯文本文件时,千万要使用unix2dos或dos2unix来转换格式。

分享到:
评论

相关推荐

    Linux和windows中的换行符差异问题.docx

    Mac OS早期版本使用单独的回车符(CR,ASCII码13)作为换行标志,但现代的Mac系统已经与Linux一致,使用LF作为换行符。 这个问题的起源可以追溯到早期的电传打字机时代,其中“回车”(CR)是将打印头移回一行的...

    dos2unix linux安装包

    1. **文本格式转换**:dos2unix 主要用于将文本文件中的DOS/Windows风格的换行符(CRLF)转换为Unix/Linux风格的换行符(LF)。这样,文件在Unix/Linux系统中可以正常显示和处理,避免出现乱码或无法正确读取的问题...

    linux2dos(转换文本工具)

    Linux系统使用的是LF(Line Feed,换行符)作为行结束标识,而Windows和DOS系统则采用CRLF(Carriage Return + Line Feed,回车加换行符)作为行结束标志。这就导致了在不同系统间交换文本文件时可能会出现格式问题...

    unix-dos 文本转换工具

    1、由于windows平台与linux平台下的换行符不同,因此在不同平台间传送文件时,因经过转换,此工具即实现了此功能。 2、此资源包文件列表如下: a) unix2dos.c #unix2dos源代码 b) dos2unix.c #dos2unix源代码 c) ...

    linux下dos转unix

    这些文件由于行尾符的不同可能会引起问题,因为DOS/Windows文件使用的是CRLF(回车换行)作为行结束符,而Unix/Linux系统使用的是LF(换行)作为行结束符。标题"linux下dos转unix"指的是将DOS格式的文件转换为Unix...

    dos2unix,unix2dos,mac2unix,unix2mac 64bit&32bit

    1. **dos2unix**:这是一个命令行工具,用于将 DOS/Windows 格式的文本文件(使用 CRLF 换行符)转换为 UNIX/Linux 格式(使用 LF 换行符)。这对于在 Linux 或 macOS 系统中处理从 Windows 系统获取的文本文件非常...

    把Linux中的文本文件格式转为Windows的

    在Linux或类Unix系统中,每行文本结束时使用的是单一的换行符(\n)。相反,Windows系统使用的是回车换行符组合(\r\n)来标记行的结束。这就导致了当一个在Linux环境下创建的文本文件在Windows中打开时,可能会出现...

    dos与unix回车

    ### DOS与UNIX的回车换行符差异 #### DOS系统的回车换行符 在DOS(磁盘操作系统)及其后继者Windows中,每一行的结尾使用两个字符来表示:回车(Carriage Return,ASCII值为13或'\r')和换行(Line Feed,ASCII值...

    dos2unix和unix2dos

    dos2unix工具的主要功能是将包含DOS/Windows风格换行符的文本文件转换为Unix/Linux风格。它会把文件中的CR+LF组合替换为单一的LF字符。这个过程通常被称为“dos2unix转换”。 相反,unix2dos工具则是将Unix/Linux...

    dos2unix-win32

    dos2unix是一个命令行工具,主要用于在DOS/Windows和UNIX/Linux系统之间转换文本文件的换行符。在不同的操作系统中,文本文件的换行符表示方式不同:DOS/Windows使用回车(CR)和换行(LF)组合,而UNIX/Linux仅使用...

    [原创]unix2dos工具

    由于这两种操作系统对文本文件的行结束符处理方式不同,Unix/Linux系统使用换行符(\n)作为行结束符,而DOS/Windows系统则使用回车+换行(\r\n)作为行结束符,因此在跨平台操作时,如果不进行转换,可能会导致文件显示...

    dos2unix 安装软件包.zip

    这个工具处理的主要问题是换行符的不同:DOS/Windows使用CRLF(回车+换行)作为行结束符,而Unix/Linux仅使用LF(换行)作为行结束符。在跨平台操作时,如代码编辑或脚本执行,这种差异可能导致问题。 在描述中,...

    dos2unix for windows

    这个过程主要是处理文件中的换行符差异,因为Windows使用的是CRLF(回车+换行)作为行结束符,而Linux/Unix系统只使用LF(换行)。 描述中提到的“换行问题”是指在跨平台操作时,由于不同操作系统对文本文件中行...

    dos2unix-7.4.1-win64-nls.zip

    《dos2unix-7.4.1-win64-nls.zip:Windows环境下CRLF与LF换行符转换的利器》 在计算机编程和文本处理领域,换行符的差异经常成为跨平台操作的一个痛点。在DOS/Windows系统中,行尾使用的是回车(CR)加换行(LF)的...

    dos to unix

    例如,DOS/Windows系统使用回车换行符(CR+LF,即` carriage return + line feed`)作为行结束标志,而UNIX/Linux系统则仅使用换行符(LF,即`line feed`)。这种差异可能会导致在不同系统之间交换文本文件时出现...

    windows和linux、Mac系统换行规则的区别.docx

    在Linux下创建的文本文件通常会在每一行末尾包括一个换行符,包括最后一行,而在Windows下创建的文件,最后一行可能不包含换行符。 为了处理这些兼容性问题,可以使用工具如`sed`来转换文件中的换行符格式,使其...

    第3讲 linux移植 二进制与文本区别.doc

    - Windows系统通常使用DOS/Windows格式的换行符,即每个换行由一个回车(CR, \r)和一个换行(LF, \n)字符组成,表示为"\r\n"。 - Linux系统则使用单一的LF字符作为换行符,表示为"\n"。 - 当代码在Windows和Linux...

    dos2unix-5.3-win32.zip

    【描述】dos2unix的主要功能是将Windows环境下创建的文本文件(使用DOS/Windows风格的换行符CR+LF)转换为Linux/Unix风格的文本文件(仅使用LF作为换行符)。这个转换过程对于在跨平台环境中处理文本文件或源代码至...

    将unix文本文件转换成dos(windows)文本文件的例子 (10KB)...

    Unix和Windows系统在处理文本文件时有不同的行结束符:Unix使用换行符(LF),而DOS/Windows系统则使用回车+换行符(CR+LF)作为一行的结束。因此,当一个Unix格式的文本文件在Windows环境下打开时,可能会显示为每...

    windows下压缩的zip文件,上传到Linux后unzip不认的解决办法

    Windows主要使用DOS/Windows风格的文本文件换行符(CRLF,即回车换行),而Linux则使用UNIX风格的换行符(LF,即只使用换行)。此外,Windows的压缩工具如WinRAR或7-Zip在处理文件时可能会包含特定的Windows元数据,...

Global site tag (gtag.js) - Google Analytics