读书人

dos与unix资料相互转换的几种方法

发布时间: 2012-06-28 15:20:03 作者: rapoo

dos与unix文件相互转换的几种方法
http://www.cyberciti.biz/faq/howto-unix-linux-convert-dos-newlines-cr-lf-unix-text-format/


DOS与Unix文件格式的区别在于换行符不同,前者为CR/LF(回车/换行),后者是只有一个LF(换行),直接读取的话,在一些编辑器上会显示不太正常,比如在vim上,dos文件有可能在行尾带上^M

有很多方法可以完成转换

dos2unix -- 包含了一系列的工具, dos2unix, unix2dos, mac2unix, unix2mac,没有mac2dos?,你可以mac2unix 再 unix2dos
sed -- 万能工具
tr -- 简单
perl one liner -- 强大的perl

假定需要转换的文件为input.txt

#dos2unixdos2unix input.txtdos2unix -b input.txt # 会生成一个input.txt.bak的备份文件#unix2dosunix2dos input.txtunix2dos -b input.txt # 会生成一个input.txt.bak的备份文件


tr -d '\r' < input.txt > output.txt  # tr无法完成反向转换即unix2dos,因为tr不能够完成复杂的替换


#unix2dossed 's/$'"/`echo \\\r`/" input.txt > output.txt#dos2unixsed 's/^M$//' input.txt > output.txt


perl -pi -e 's/\r\n/\n/g' input.txtperl -pi -e 's/\n/\r\n/g' input.txt


读书人网 >操作系统

热点推荐