dos2unix和unix2dos命令

在项目团队开发的过程,经常碰到团队成员使用的系统不一样,有的使用Linux,有的是window,所以可能会出现, 代码文件格式不一样的问题, window窗口文件使用与Dos相同的格式,其中行尾由两个字符表示,回车符或CR或\ r,后跟换行符LF或\n。另一方面,Unix文件仅使用换行(\n)。

Windows和Linux文本文件的格式略有不同。在Windows中,行以换行符和回车符结尾,均返回ASCII字符,但是Linux仅使用换行符。因此,某些Windows应用程序将不会在Unix格式的文件中显示换行符。同样,Linux程序可能会在Windows文本文件中以每行末尾的Ctrl-m(^M)字符显示回车符。

unix2dos是一个工具,可将文本文件中的换行符从Unix格式(换行)转换为DOS格式(回车+换行),反之亦然。

  • dos2unix命令:将DOS文本文件转换为UNIX格式。
  • Unix2dos命令:将Unix文本文件转换为DOS格式

举个例子:

Task : Create a file in DOS or in notepad with following contents
hello everybody
welcome to unix
unix is easy

现在将此文件复制到unix /home/11meigui目录中

$od –bc myfile.txt
0000000 150 145 154 154 157 040 145 166 145 162 171 142 157 144 171 015
          h   e   l   l   o       e   v   e   r   y   b   o   d   y  \r
0000020 012 167 145 154 143 157 155 145 040 164 157 040 165 156 151 170
         \n   w   e   l   c   o   m   e       t   o       u   n   i   x
0000040 015 012 165 156 151 170 040 151 163 040 145 141 163 171 015 012
         \r  \n   u   n   i   x       i   s       e   a   s   y  \r  \n
0000060

CR-LF组合由八进制值015-012和转义序列\ r \ n表示。

注意:上面的输出显示这是DOS格式的文件。
现在通过使用dos2unix命令将DOS文件转换为UNIX格式

$ dos2unix myfile.txt 
$ od –bc myfile.txt

将此文件转换为UNIX只是删除\ r的简单问题。
我们还可以使用unixsdos命令将UNIX文件转换为DOS格式。

$ unix2dos myfile.txt 
$ od –bc myfile.txt

将此文件转换为DOS后,\ r将添加到DOS文件中。

linux tee命令
列出Linux支持的所有shell
Tags: