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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java它 —— 图形界面(两)

    java它 —— 图形界面(两)

    2022年1月9日
    47
  • noip2011 day1[通俗易懂]

    noip2011 day1[通俗易懂]简单模拟,蜜汁WA。因为错了还是写一下思路:   先保存,然后倒着(n到1)枚举覆盖目标点的毯子,找到即是答案。#include<iostream>#include<cstdio>#include<cstdlib>#include<algorithm>#include<cmath>#include<cctype>…

    2022年9月25日
    2
  • toArray方法的使用简记「建议收藏」

    toArray方法的使用简记「建议收藏」最近在写代码的时候需要用到的List的toArray方法。可是程序报错了报错代码大致这样的publicvoidfind(){List<String>list=newArrayList<String>();list.add("have");list.add("no");list.add("problem"…

    2022年5月14日
    45
  • 浏览器安装为知笔记插件(chrome浏览器)

    浏览器安装为知笔记插件(chrome浏览器)1.下载并安装驱动 wiz.cn/zh-cn/downloads-webclipper.html2.我选择的谷歌浏览器,因为不好翻墙,这里选择手动安装3.下载会得到一个crx文件。注意这里按照官方文档去添加到扩展程序会失败。我们要把这个文件后缀名改为.zip形式并解压,得到文件夹。注意:是直接将.crx改成.zip!!不是自己压缩成的4.接着,打开谷歌的“更多工具”…

    2022年8月18日
    37
  • docker停止运行中的容器(docker关闭容器)

    问题描述:centos启动一个容器添加了-d参数,但是dockerps或者dockerps-a查看却已经退出了shell>dockerrun-dcentosa44b2b88559b68a2221c9574490a0e708bff49d88ca21f9e59d3eb245c7c0547shell>dockerps退出原因1、docker容器运行必须有一…

    2022年4月10日
    730
  • 微信二维码登录原理是什么_请使用微信扫描二维码登录

    微信二维码登录原理是什么_请使用微信扫描二维码登录网页登陆是微信4.2以后版本提供的一种全新的登陆方式。用户只需要用手机扫一扫微信网页中的二维码,就能马上实现微信网页登陆。这种登陆方式虽然炫酷,但是多少有些违背直觉:网页端是怎么知道是哪个微信账号

    2022年8月4日
    9

发表回复

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

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