dos2unix
是Linux下的一个用户转换格式的程序,由于windows上文件的结束符和linux上的不同,那么在windows上编写的文件或者是脚本在Linux上就会遇到类似于下面的错误:
/bin/sh^M: bad interpreter: No such file or directory
出现上述的错误真实因为结束符的不同,要解决上述问题,只需要转换一下就行了
:set fileformat=unix
:set fileformat=dos
:set ff
**缺点:**只适合少量文件,当文件数较多时,工作量巨大
和方法一类似的,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来实现的批量命令,将方法二修改一下就可以实现很多的批量操作,
比如:
sudo find /home/test -name "*.tmp" | xargs rm -f
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