不同系统文本文件的行尾换行符不同:
Windows为一个回车’\r’(CR或^M)和一个换行’\n’(NL或LF)(括号内是其它显示方法)
Linux为一个换行’\n’
Mac为一个回车’\r’
查看文件是否含有Windows换行符:
Windows:Notepad++ ==>视图 ==>显示所有符号
Linux:file test.txt
test.txt: ASCII text, with CRLF line terminators
Vim:命令模式下输入:e ++ff=unix,^M就是Windows换行符
转换方法:
Windows下Notepad++ ==>编辑 ==> 文档格式转换 ==> 转为Unix
Linux:sed -i ‘s/\r//‘ filename
Linux:dos2unix filename(需要先安装dos2unix)
dos2unix语法:
dos2unix [-hkqV] [-c convmode] [-o file …] [-n infile outfile …]
参数说明:
-k:保持输出文件的日期不变
-q:安静模式,不提示任何警告信息。
-V:查看版本
-c:转换模式,模式有:ASCII, 7bit, ISO, Mac, 默认是:ASCII。
-o:写入到源文件
-n:写入到新文件
Linux批量转换:find -type f | xargs dos2unix -o
Vim:命令模式下输入:%s/^M//g或者:g/\^M/s/\^M//
Vim:命令模式输入:set ff?如果出现fileforma=dos 表示是Windows上的换行符。继续输入:set fileformat=unix 保存即可
相关文章
- 05-17不可或缺 Windows Native (21) - C++: 继承, 组合, 派生类的构造函数和析构函数, 基类与派生类的转换, 子对象的实例化, 基类成员的隐藏(派生类成员覆盖基类成员)
- 05-17CDC和HDC的区别与转换
- 05-17windows下LIB和DLL的区别与使用
- 05-17linux中du与df的区别和联系
- 05-17Linux换行符和Windows换行符的区别与转换
- 05-17windows与linux换行符
- 05-17linux – 如何在Bash脚本中将DOS / Windows换行符(CRLF)转换为Unix换行符(LF)?
- 05-17linux与windows的文本文件之间的转换
- 05-17【转载】LINUX 和 WINDOWS 内核的区别
- 05-17linux和windows系统的区别