怎样转换DOS/Windows newline (CRLF) 和Unix newline (\n)文本文件
在Unix/Linux下可以使用file命令查看文件类型,如下:
file dosfile.txt
1、使用dos2unix
一般Linux发行版中都带有这个小工具,只能把DOS转换为UNIX文件,命令如下:
dos2unix dosfile.txt
安装dos2unix
yum -y install dos2unix
2、使用tr
使用tr命令拷贝标准输入到标准输出,替换或者删除掉选择的字符,只能把DOS转换为UNIX文件,命令如下:
tr -d '\r' < dosfile.txt > unixfile.txt
3、使用vim
Vim是一个vi的改进版本,可以运行在Windows和Linux平台上,使用方法如下:
vim dosfile.txt
DOS转UNIX:
:set ff=unix
UNIX转DOS:
:set ff=dos
:wq
注:为了能让vim可以自动识别DOS和UNIX文本文件格式,可以在.vimrc(Linux)或_vimrc(Windows)配置文件中加入如下一行设置:
set fileformats=dos,unix
设置完成后,使用vim打开DOS文本文件就不会显示^M字符了
4、使用Emacs
Emacs是一个Unix下面的文本编辑工具。它会在底部的状态栏上显示文件的信息。
DOS转UNIX :
M-x set-buffer-file-coding-system Unix
UNIX转DOS:
M-x set-buffer-file-coding-system dos
5、使用sed
在DOS文件格式中使用CR/LF换行,在Unix下仅使用LF换行,sed替换命令如下:
DOS转UNIX:
$ sed 's/.$//' dosfile.txt > unixfile.txt
UNIX转DOS:
$ sed 's/$/\r/' unixfile.txt > dosfile.txt
6、使用Perl
Perl是相当直接,你添加或删除掉文件每行结尾的CR字符。
DOS转UNIX:
perl -p -e 's/\r$//' < dosfile.txt > unixfile.txt
UNIX转DOS:
perl -p -e 's/$/\r/' < unixfile.txt > dosfile.txt
7、使用awk
DOS转UNIX:
awk '{sub("\r$","", $0);print $0}' dosfile.txt > unixfile.txt
UNIX转DOS:
awk '{sub("$","\r", $0);print $0}' dosfile.txt > unixfile.txt
8、使用Python
DOS转UNIX:
python -c "import sys; map(sys.stdout.write, (l[:-2] + '\n' for l in sys.stdin.readlines()))"< dosfile.txt > unixfile.txt
UNIX转DOS:
python -c "import sys; map(sys.stdout.write, (l[:-1] + '\r\n' for l in sys.stdin.readlines()))"< dosfile.txt > unixfile.txt
注:具体使用哪种根据文件大小实际情况而定,以及个人习惯用的访求
How to convert DOS/Windows newline (CRLF) to Unix
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 怎样转换DOS/Windows newline (CRLF) 和Unix newline (\n)文本文件 How...
- send 批量替换 单个文件修改 在Unix/Linux下可以使用file命令查看文件类型,如下: 1file d...
- 一、实验背景 各个平台使用的文本编码规范不同,导致了同一文本在不同平台中显示不同。 大家知道,windows中的文...