Windows和Linux间文本文件格式转换那些事

Windows和Linux间文本文件格式转换那些事 

DOS 与 Linux 断行字符的不同 , 我们可以利用 cat -A 来观察以 DOS (Windows 系统) 建立的档案的特殊格式, 也可以发现在 DOS 使用的断行字符为 ^M$ ,我们称为 CR 与 LF 两个符号。 而在 Linux 底下,则是shell的程序文件,能造成『程序无法执行』的状态。我们可以透过简单的指令来进行格式的转换。
[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


最后,如果项目中经常遇到这种文件格式问题,建议写一个批处理来转换多个文件。

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页