windows和linux文件CRLF转换


1. CRLF

CRLF -- Carriage-Return Line-Feed 回车换行。
CR:回车,ASCII 13, \r, LF:换行,LF, ASCII 10, \n。 windows下使用 \r\n 换行, linux使用 \n 换行。 windows断行字符 ^M$, linux仅有 $ 如果linux下shell文件包含^M字符,则无法执行,需要去掉 \r 。

2. dos2unix和unix2dos

dos2unix和unix2dos这两个命令用来转换CRLF。
dos2unix -kn file newfile
-k 保持源文件mtime -n 保留旧文件,转换结果输出到新文件。

3. 使用举例

windows下新建的文件test。
#test 为windows文件
$ cat -A test
baidu^M$
google^M$

# 转换到linux
$ dos2unix -k -n test test.linux
dos2unix: converting file test to file test.linux in UNIX format ...

# 查看时间相同, 文件大小不一致
$ ll
-rw-rw-r--   1 work work        15 Aug  9 19:16 test
-rw-------   1 work work        13 Aug  9 19:16 test.linux

# cat -A 查看
$ cat -A test.linux 
baidu$
google$

#unix转换到windows
$ unix2dos test.linux 
unix2dos: converting file test.linux to DOS format ...

# 查看 大小和时间
$ ll
-rw-rw-r--   1 work work        15 Aug  9 19:16 test
-rw-------   1 work work        15 Aug  9 19:18 test.linux
地址:http://blog.csdn.net/yonggang7/article/details/38459143

相关内容