windows中的文本文件的换行符是"\r\n",而linux中是"\n",dos格式文件传输到unix系统时,会在每行的结尾多一个^M,当然也有可能看不到,但是在vi的时候,会在下面显示此文件的格式,比如 "dos.txt" [dos] 120L, 2532C 字样,表示是一个[dos]格式文件,如果是MAC系统的,会显示[MAC],因为文件格式的原因有时会导致我们的unix程序,或者shell程序出现错误,那么需要把这些dos文件格式转换成unix格式。
由windows系统中的文件移到unix系统下时,执行时提示No such file or directory。
方法总结如下:
1、使用vi编译器
输入 :set fileformat=unix 或 set ff=unix ,用命令:set ff? 可以看到dos或unix的字样,set ff=dos #设置成dos格式。
2、使用sed
sed 's/^M//' filename > tmp_filename,其中^M是同时Ctrl+V+M按出来的,不是直接输入 ^M,表示回车。
3、使用tr
命令:tr -d "\015" dos_file.txt
4、使用perl
cat dos_file.txt | perl -pe '~s/\r//g' > dos_file.txt
5、dos2unix
dos2unix file
dos2unix file1 file2 file3
部分系统下,没有安装dos2unix,需要安装。
相关文章:
- DOS、Mac 和 Unix 文件格式 - loleng 2021-09-08
- Linux将文件强制转换为dos格式、unix格式 2021-06-09
- dos2unix - DOS/Mac - Unix文件格式转换器 2021-12-11
- 在linux下,去除^M,将windows格式文件(dos文件)改为unix格式文件 2022-12-23
- dos格式转unix格式 2022-01-03
- 检测到 Mac 文件格式: 请将源文件转换为 DOS 格式或 UNIX 格式 2021-09-08
- Linux上将文件从dos格式、unix格式相互转化 2021-07-30
- Java 生成本文文件的时候,Dos格式转成Unix格式 2022-12-23