linux批量dos2unix,DOS和UNIX文本文件之间相互转换的方法&批量

send 批量替换

find . -name "*.sh" | xargs sed -i 's/\r$//g'

find . -name "*.txt" | xargs sed -i 's/\r$//g'

单个文件修改

在Unix/Linux下可以使用file命令查看文件类型,如下:

1

file dosfile.txt

使用dos2unix

一般Linux发行版中都带有这个小工具,只能把DOS转换为UNIX文件,命令如下:

1

dos2unix dosfile.txt

安装dos2unix

1

yum -y install dos2unix

使用tr

使用tr命令拷贝标准输入到标准输出,替换或者删除掉选择的字符,只能把DOS转换为UNIX文件,命令如下:

1

tr -d '\r' < dosfile.txt > unixfile.txt

使用vim

Vim是一个vi的改进版本,可以运行在Windows和Linux平台上,使用方法如下:

# vim dosfile.txt

1

2

3

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字符了。

使用Emacs

Emacs是一个Unix下面的文本编辑工具。它会在底部的状态栏上显示文件的信息。

DOS转UNIX :M-xset-buffer-file-coding-system Unix

UNIX转DOS:M-xset-buffer-file-coding-system dos

使用sed

在DOS文件格式中使用CR/LF换行,在Unix下仅使用LF换行,sed替换命令如下:

DOS转UNIX:$ sed 's/.$//' dosfile.txt > unixfile.txt

UNIX转DOS:$ sed 's/$/\r/' unixfile.txt > dosfile.txt

使用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

使用awk

DOS转UNIX:awk '{sub("\r

math?formula=%22%2C%22%22%2C0);print $0}' dosfile.txt > unixfile.txt

UNIX转DOS:awk '{sub("$","\r", $0);print $0}' dosfile.txt > unixfile.txt

使用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

总结

还有其它DOS和UNIX文本文件的转换方法,我个人推荐使用vim命令。但是,对于大型的文件,推荐使用perl工具,你也不希望在vim或Emacs中打开几个G的文本文件。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值