dos2unix命令将dos文件转换为unix格式

dos2unix命令将dos文件转换为unix格式使用git的时候碰到git将unix换行符转换为windows换行符的问题,需要使用dos2unix命令将文件转换为unix格式。dos2unix命令用来将DOS格式的文本文件转换成UNIX格式的(DOS/MACtoUNIXtextfileformatconverter)。DOS下的文本文件是以\r\n作为断行标志的,表示成十六进制就是0D0A。而Unix下的文本文件是以\n作为断行

大家好,又见面了,我是你们的朋友全栈君。

使用git 的时候碰到git将unix换行符转换为windows换行符的问题,需要使用dos2unix命令将文件转换为unix格式。

dos2unix命令用来将DOS格式的文本文件转换成UNIX格式的(DOS/MAC to UNIX text file format converter)。DOS下的文本文件是以\r\n作为断行标志的,表示成十六进制就是0D 0A。而Unix下的文本文件是以\n作为断行标志的,表示成十六进制就是0A。DOS格式的文本文件在Linux底下,用较低版本的vi打开时行尾会显示^M,而且很多命令都无法很好的处理这种格式的文件,如果是个shell脚本,。而Unix格式的文本文件在Windows下用Notepad打开时会拼在一起显示。因此产生了两种格式文件相互转换的需求,对应的将UNIX格式文本文件转成成DOS格式的是unix2dos命令。

语法:

dos2unix [-hkqV] [-c convmode] [-o file ...] [-n infile outfile ...]

选项


 1. -k:保持输出文件的日期不变 
 2. -q:安静模式,不提示任何警告信息
 3. -V:查看版本
 4. -c:转换模式,模式有:ASCII, 7bit, ISO, Mac, 默认是:ASCII
 5. -o:写入到源文件
 6. -n:写入到新文件

参数

参数:需要转换到的文件。

实例
最简单的用法就是dos2unix直接跟上文件名:

dos2unix file 

如果一次转换多个文件,把这些文件名直接跟在dos2unix之后。(注:也可以加上-o参数,也可以不加,效果一样)

dos2unix file1 file2 file3 
dos2unix -o file1 file2 file3 

上面在转换时,都会直接在原来的文件上修改,如果想把转换的结果保存在别的文件,而源文件不变,则可以使用-n参数。

dos2unix oldfile newfile 

如果要保持文件时间戳不变,加上-k参数。所以上面几条命令都是可以加上-k参数来保持文件时间戳的。

dos2unix -k file
dos2unix -k file1 file2 file3
dos2unix -k -o file1 file2 file3
dos2unix -k -n oldfile newfile

以上是转换单个文件,如果要转换目录或文件夹的话,请往下看:


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

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

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

这里假设我需要替换的文件所在目录为 public/components目录下。

如果批量替换public/components 目录下的所有文件使用如下命令:

find public/components/ -name "*" | xargs dos2unix

其中,”*”号表示所有文件。

要更改文件格式的后缀为.py ,那么借助于下面的命令就可以轻松的实现批量替换格式:
批量替换为linux文件格式:

sudo find public/components/ -name "*.py" | xargs dos2unix

批量替换为dos文件格式:

sudo find public/components/ -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

Author:leedaning
本文地址:http://blog.csdn.net/leedaning/article/details/53024290

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/138254.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 关于pip安装第三方库以及pycharm中导入第三方库的问题[通俗易懂]

    关于pip安装第三方库以及pycharm中导入第三方库的问题[通俗易懂]pip安装的话,找到自己安装python的路径,在安装路径下会有一个文件夹,比如我的安装路径是c盘我是默认安装路径,在里面有一个python36文件夹。哦对了,你们安装python的时候,我的是3.6版本,在安装界面记得吧addpath这个选项勾上,这是帮你自动添加路径。然后打开python36文件夹,里面有一个scripts。(有的人会找不到AppData在哪,在c盘,因为被隐藏了。我的…

    2022年8月29日
    3
  • cglib BeanCopier的使用

    cglib BeanCopier的使用一、概述  选择Cglib的BeanCopier进行Bean拷贝的理由是,其性能要比Spring的BeanUtils,Apache的BeanUtils和PropertyUtils要好很多,尤其是数据量比较大的情况下。  之前的一篇文章:Easy-mapper教程——模型转换工具提到了Cglib的BeanCopier使用ASM字节码生成技术,所以性能会非常好。  下面的文章内容直接整理…

    2025年9月13日
    6
  • 服务器上的MSDTC不可用解决办法[通俗易懂]

    服务器上的MSDTC不可用解决办法[通俗易懂]MSDTC(分布式交易协调器),协调跨多个数据库、消息队列、文件系统等资源管理器的事务。该服务的进程名为Msdtc.exe,该进程调用系统MicrosoftPersonalWebServer和MicrosoftSQLServer。该服务用于管理多个服务器.位置:控制面板--管理工具--服务--DistributedTransactionCoordinator依存关系:R

    2025年7月15日
    4
  • springioc和aop原理_描述spring框架的工作原理

    springioc和aop原理_描述spring框架的工作原理Spring的Ioc底层是怎么实现的?一、SpringIoc是什么IOC:控制反转,就是把对象的创建交给Spring来做二、SpringIoc所使用的技术1、xml配置文件2、dom4j解析XML文件3、工厂设计模式4、反射三、SpringIoc的具体实现第一步:配置xml文件 <bean id="dic" class="com.zhy.springIoc.model.Dic">&lt…

    2022年9月17日
    2
  • 免费国内php空间_全球vps交流网站超级vps管理器

    免费国内php空间_全球vps交流网站超级vps管理器网站名称:000webhost.com250MB硬盘空间,100GB数据流量有足够的空间存放你的网站,emails 和数据库. 服务器为百兆独享接入Internet, 所以可以提供100G的数据流量.PHP 和MySQL 数据库支持不想其他免费空间,对php和mysql的功能进行限制.在这里你可以使用最新版本的php和mysql. 所有以下php特性都支持:

    2022年9月21日
    3
  • JavaScript对象

    JavaScript对象

    2021年11月29日
    41

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号