我们已经准备好了,你呢?

2024我们与您携手共赢,为您的企业形象保驾护航!

在使用git的时候,可能会遇到git将unix换行符转换为换行符的问题,需要使用命令将文件转换为unix格式。

该命令用于将DOS格式的文本文件转换为UNIX格式(DOS/MAC转UNIX文本文件)。DOS文本文件使用\r\n作为换行符,十六进制表示为0D 0A。Unix文本文件使用\n作为换行符,十六进制表示为0A。DOS格式的文本文件在Linux下用旧版本的vi打开时会在行末显示^M,而且很多命令无法很好处理该格式的文件,比如shell脚本。Unix格式的文本文件在Linux下打开时会一起显示。因此需要将两种格式的文件互相转换,对应的命令就是将UNIX格式的文本文件转换为DOS格式。

语法:

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 file 

如果要一次性转换多个文件,则直接在后面加上文件名即可。(注:也可以加-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本身提供了这两个命令来实现Linux文件的转换。

但是它并没有提供递归的方法,也就是批量修改的方法,所以我们需要使用xargs命令。

xargs命令的作用是将参数列表转换成小的块并传递给其他命令,借助xargs,我们可以轻松实现批量替换;

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

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

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

优点:批量替换,工作量小。一般来说方法2都是利用管道和xargs来实现批处理命令的。修改方法2可以实现很多批量操作。

例如:

1、批量删除整个Linux系统里所有后缀为.tmp的文件;那么命令可以这样写:

sudo find /home/test -name "*.tmp" | xargs rm -f

2、删除整个Linux系统内的相关文件:

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

二维码
扫一扫在手机端查看

本文链接:https://by928.com/4250.html     转载请注明出处和本文链接!请遵守 《网站协议》
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。

项目经理在线

我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

13761152229

上班时间

周一到周五

公司电话

二维码
微信
线