使用dos2unix批量转换文件

本文介绍了如何使用dos2unix工具在Linux环境下批量转换文件格式,以解决因文件结束符不同导致的执行错误。方法一通过vi编辑器手动设置文件格式,适合少量文件;方法二结合find、xargs命令实现批量转换,适用于大量文件。同时展示了如何使用xargs进行其他批量操作,如删除文件。安装dos2unix和unix2dos命令的方法也一并给出。
摘要由CSDN通过智能技术生成

使用dos2unix批量转换文件

dos2unix是Linux下的一个用户转换格式的程序,由于windows上文件的结束符和linux上的不同,那么在windows上编写的文件或者是脚本在Linux上就会遇到类似于下面的错误:

/bin/sh^M: bad interpreter: No such file or directory

出现上述的错误真实因为结束符的不同,要解决上述问题,只需要转换一下就行了

方法一:针对于单个文件或少量文件:

  • 使用vi 编辑sh脚本或者其他的脚本文件,然后按ESC进入vi的命令行模式,输入下面的命令:
:set fileformat=unix
  • 当然如果要将文件格式设定为dos文件格式,也就是windows的格式,那么输入下面的命令就行了
:set fileformat=dos
  • 修改完成后,使用下面的命令查看文件的格式类型:
:set ff

**缺点:**只适合少量文件,当文件数较多时,工作量巨大

方法二:批量更改linux文件格式

​ 和方法一类似的,Linux本身提供了dos2unix和unix2dos这两个命令来实现windows和linux文件的转换,

但是。dos2unix和unix2dos本身没有提供递归也就是批量修改的方式,这样一来我们就需要借助于xargs命令了

xargs的命令的作用就是将参数列表转换成小块分段传递给其他命令,借助于xargs,我们可以很简单的实现批量替换;

这里假设我需要替换的文件所在目录为 /home/test目录下,要更改文件格式的后缀为.py ,那么借助于下面的命令就可以轻松的实现批量替换格式:

批量替换为linux文件格式:

sudo find /home/test -name "*.py" | xargs dos2unix

批量替换为dos文件格式:

sudo find /home/test -name "*.py" | xargs unix2dos

**优点:**批量替换,工作量小, 总的来说,方法二借助于 管道符和xargs来实现的批量命令,将方法二修改一下就可以实现很多的批量操作,

比如:

  1. 批量删除整个linux系统中后缀为.tmp的文件;那么命令可以这么写:
sudo find /home/test -name "*.tmp" | xargs rm -f
  1. 删除整个linux系统中与apache相关的文件:
sudo find /home/test -name "*apache" | xargs rm -rf

只要理解了xargs的功能。

安装相关命令:

sudo yum -y install dos2unix
sudo yum -y install unix2dos

批量去掉[noeol]

sudo find /home/test -name "*.*" | xargs cat -A
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值