我们在第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来转换格式。
分享到:
相关推荐
Mac OS早期版本使用单独的回车符(CR,ASCII码13)作为换行标志,但现代的Mac系统已经与Linux一致,使用LF作为换行符。 这个问题的起源可以追溯到早期的电传打字机时代,其中“回车”(CR)是将打印头移回一行的...
1. **文本格式转换**:dos2unix 主要用于将文本文件中的DOS/Windows风格的换行符(CRLF)转换为Unix/Linux风格的换行符(LF)。这样,文件在Unix/Linux系统中可以正常显示和处理,避免出现乱码或无法正确读取的问题...
Linux系统使用的是LF(Line Feed,换行符)作为行结束标识,而Windows和DOS系统则采用CRLF(Carriage Return + Line Feed,回车加换行符)作为行结束标志。这就导致了在不同系统间交换文本文件时可能会出现格式问题...
1、由于windows平台与linux平台下的换行符不同,因此在不同平台间传送文件时,因经过转换,此工具即实现了此功能。 2、此资源包文件列表如下: a) unix2dos.c #unix2dos源代码 b) dos2unix.c #dos2unix源代码 c) ...
这些文件由于行尾符的不同可能会引起问题,因为DOS/Windows文件使用的是CRLF(回车换行)作为行结束符,而Unix/Linux系统使用的是LF(换行)作为行结束符。标题"linux下dos转unix"指的是将DOS格式的文件转换为Unix...
1. **dos2unix**:这是一个命令行工具,用于将 DOS/Windows 格式的文本文件(使用 CRLF 换行符)转换为 UNIX/Linux 格式(使用 LF 换行符)。这对于在 Linux 或 macOS 系统中处理从 Windows 系统获取的文本文件非常...
在Linux或类Unix系统中,每行文本结束时使用的是单一的换行符(\n)。相反,Windows系统使用的是回车换行符组合(\r\n)来标记行的结束。这就导致了当一个在Linux环境下创建的文本文件在Windows中打开时,可能会出现...
### DOS与UNIX的回车换行符差异 #### DOS系统的回车换行符 在DOS(磁盘操作系统)及其后继者Windows中,每一行的结尾使用两个字符来表示:回车(Carriage Return,ASCII值为13或'\r')和换行(Line Feed,ASCII值...
dos2unix工具的主要功能是将包含DOS/Windows风格换行符的文本文件转换为Unix/Linux风格。它会把文件中的CR+LF组合替换为单一的LF字符。这个过程通常被称为“dos2unix转换”。 相反,unix2dos工具则是将Unix/Linux...
dos2unix是一个命令行工具,主要用于在DOS/Windows和UNIX/Linux系统之间转换文本文件的换行符。在不同的操作系统中,文本文件的换行符表示方式不同:DOS/Windows使用回车(CR)和换行(LF)组合,而UNIX/Linux仅使用...
由于这两种操作系统对文本文件的行结束符处理方式不同,Unix/Linux系统使用换行符(\n)作为行结束符,而DOS/Windows系统则使用回车+换行(\r\n)作为行结束符,因此在跨平台操作时,如果不进行转换,可能会导致文件显示...
这个工具处理的主要问题是换行符的不同:DOS/Windows使用CRLF(回车+换行)作为行结束符,而Unix/Linux仅使用LF(换行)作为行结束符。在跨平台操作时,如代码编辑或脚本执行,这种差异可能导致问题。 在描述中,...
这个过程主要是处理文件中的换行符差异,因为Windows使用的是CRLF(回车+换行)作为行结束符,而Linux/Unix系统只使用LF(换行)。 描述中提到的“换行问题”是指在跨平台操作时,由于不同操作系统对文本文件中行...
《dos2unix-7.4.1-win64-nls.zip:Windows环境下CRLF与LF换行符转换的利器》 在计算机编程和文本处理领域,换行符的差异经常成为跨平台操作的一个痛点。在DOS/Windows系统中,行尾使用的是回车(CR)加换行(LF)的...
例如,DOS/Windows系统使用回车换行符(CR+LF,即` carriage return + line feed`)作为行结束标志,而UNIX/Linux系统则仅使用换行符(LF,即`line feed`)。这种差异可能会导致在不同系统之间交换文本文件时出现...
在Linux下创建的文本文件通常会在每一行末尾包括一个换行符,包括最后一行,而在Windows下创建的文件,最后一行可能不包含换行符。 为了处理这些兼容性问题,可以使用工具如`sed`来转换文件中的换行符格式,使其...
- Windows系统通常使用DOS/Windows格式的换行符,即每个换行由一个回车(CR, \r)和一个换行(LF, \n)字符组成,表示为"\r\n"。 - Linux系统则使用单一的LF字符作为换行符,表示为"\n"。 - 当代码在Windows和Linux...
【描述】dos2unix的主要功能是将Windows环境下创建的文本文件(使用DOS/Windows风格的换行符CR+LF)转换为Linux/Unix风格的文本文件(仅使用LF作为换行符)。这个转换过程对于在跨平台环境中处理文本文件或源代码至...
Unix和Windows系统在处理文本文件时有不同的行结束符:Unix使用换行符(LF),而DOS/Windows系统则使用回车+换行符(CR+LF)作为一行的结束。因此,当一个Unix格式的文本文件在Windows环境下打开时,可能会显示为每...
Windows主要使用DOS/Windows风格的文本文件换行符(CRLF,即回车换行),而Linux则使用UNIX风格的换行符(LF,即只使用换行)。此外,Windows的压缩工具如WinRAR或7-Zip在处理文件时可能会包含特定的Windows元数据,...