使用dos2unix批量转换文件
使用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
最新文章
- 获取打开的Word文档
- UVA计数方法练习[3]
- Android判断网路是否畅通加权限
- cloudfoundry上搭建go服务端
- <;实训|第七天>;横扫Linux磁盘分区、软件安装障碍附制作软件仓库
- 网上搜的一个shell中 中文设置的一个样例;
- C++ Code_Slider
- cocos2d-x mac or windows eclipse android ------ Eclipse工程里面还会有许多警告
- 编写类String的构造函数、拷贝构造函数、析构函数和赋值函数
- android的原理--为什么我们不需要手动关闭程序
- 【Cocos2d-X开发学习笔记】第28期:游戏中音乐和音效的使用
- SQLServer 存储过程嵌套事务处理
- c#类,接口,结构,抽象类介绍 以及抽象和接口的比较
- 工作中git常用命令
- RHEL6 SoftRaid 更换故障硬盘
- Springboot中使用Scheduled做定时任务
- 如何做自己的服务监控?spring boot 1.x服务监控揭秘
- .Net Core 2.0 生态(2).NET Core 2.0 特性介绍和使用指南
- 配置阿里云的金融云上的rsync
- day31 粘包问题
热门文章
- SSL安装方法一:在Windows Server 2008安装SSL证书(IIS 7.0)
- 110道python题+理解(不断更新)
- lnmp一键安装环境添加redis扩展及作为mysql的缓存
- FNV hash算法
- Python开发【数据结构】:基础
- python 面向对象 公有属性 用在哪里
- 1.Anaconda安装Tensorflow报错UnicodeDecodeError: &#39;utf-8&#39; codec can&#39;t decode ## invalid start byte的问题之解决
- EasyUI Draggable 可拖动
- java, android的aes等加密库
- JS获取客户端系统当前时区