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

2.删除整个linux系统中与apache相关的文件:

sudo find /home/test -name "*apache" | xargs rm -rf

只要理解了xargs的功能。

安装相关命令:

sudo apt-get -y install dos2unix
sudo apt-get -y install unix2dos

批量去掉[noeol]

sudo find /home/test -name "*.*" | xargs cat -A

最新文章

  1. 获取打开的Word文档
  2. UVA计数方法练习[3]
  3. Android判断网路是否畅通加权限
  4. cloudfoundry上搭建go服务端
  5. <实训|第七天>横扫Linux磁盘分区、软件安装障碍附制作软件仓库
  6. 网上搜的一个shell中 中文设置的一个样例;
  7. C++ Code_Slider
  8. cocos2d-x mac or windows eclipse android ------ Eclipse工程里面还会有许多警告
  9. 编写类String的构造函数、拷贝构造函数、析构函数和赋值函数
  10. android的原理--为什么我们不需要手动关闭程序
  11. 【Cocos2d-X开发学习笔记】第28期:游戏中音乐和音效的使用
  12. SQLServer 存储过程嵌套事务处理
  13. c#类,接口,结构,抽象类介绍 以及抽象和接口的比较
  14. 工作中git常用命令
  15. RHEL6 SoftRaid 更换故障硬盘
  16. Springboot中使用Scheduled做定时任务
  17. 如何做自己的服务监控?spring boot 1.x服务监控揭秘
  18. .Net Core 2.0 生态(2).NET Core 2.0 特性介绍和使用指南
  19. 配置阿里云的金融云上的rsync
  20. day31 粘包问题

热门文章

  1. SSL安装方法一:在Windows Server 2008安装SSL证书(IIS 7.0)
  2. 110道python题+理解(不断更新)
  3. lnmp一键安装环境添加redis扩展及作为mysql的缓存
  4. FNV hash算法
  5. Python开发【数据结构】:基础
  6. python 面向对象 公有属性 用在哪里
  7. 1.Anaconda安装Tensorflow报错UnicodeDecodeError: 'utf-8' codec can't decode ## invalid start byte的问题之解决
  8. EasyUI Draggable 可拖动
  9. java, android的aes等加密库
  10. JS获取客户端系统当前时区