• 什么是dos2unix? dos2unix是将Windows格式文件转换为Unix、Linux格式的实用命令。 Windows格式文件的换行符为\r\n ,而Unix&...unix2dos则是和dos2unix互为孪生的一个命令,它是将Linux&Unix格式文件转换为...

    什么是dos2unix?

    dos2unix是将Windows格式文件转换为Unix、Linux格式的实用命令。

    Windows格式文件的换行符为\r\n ,而Unix&Linux文件的换行符为\n。dos2unix命令其实就是将文件中的\r\n 转换为\n。

    什么是unix2dos?

    unix2dos则是和dos2unix互为孪生的一个命令,它是将Linux&Unix格式文件转换为Windows格式文件的命令。

    命令语法

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

    unix2dos [options] [-c convmode] [-o file ...] [-n infile outfile ...]

    命令参数

    此命令参数是Red Hat Enterprise Linux Server release 5.7下dos2unix命令参数,不同版本Linux的dos2nnix命令参数有可能不同。

    参数 长参数 描述
    -h 显示命令dos2unix联机帮助信息。
    -k 保持文件时间戳不变
    -q 静默模式,不输出转换结果信息等
    -v 显示命令版本信息
    -c 转换模式
    -o 在源文件转换,默认参数
    -n 保留原本的旧档,将转换后的内容输出到新档案.默认都会直接在原来的文件上修改

    使用示例

    dsw@ubuntu:~/work/dict$ ll
    total 5592
    drwxrwxr-x 2 dsw dsw 4096 Sep 30 15:15 ./
    drwxrwxr-x 14 dsw dsw 4096 Sep 30 15:13 ../
    -rwxr--r-- 1 dsw dsw 2857196 Sep 30 15:15 book.csv*
    -rwxr--r-- 1 dsw dsw 2857196 Sep 30 15:15 test.csv*
    
    dsw@ubuntu:~/work/dict$ dos2unix book.csv            //在源文件基础上将此文件从dos格式转换为unix格式
    dsw@ubuntu:~/work/dict$ dos2unix -n book.csv newbook.csv   //保留源文件
    dsw@ubuntu:~/work/dict$ dos2unix book.csv book.csv      //一次转换多个文件
    dsw@ubuntu:~/work/dict$ dos2unix -k book.csv            //不改变转换后文件的时间戳
    dsw@ubuntu:~/work/dict$ dos2unix -q book.csv          //静默转换

    参考文档

    展开全文
  • dos2unix unix2dos

    2020-06-20 22:50:26
    类unix文件拷贝到windows系统,就会丢失换行标识, windows文件拷贝到类unix系统,就会出现"^M"标识 可以用于解决Ftp上传二进制文件时没加binary, dos2unix 没加binary上传的文件. unix2dos集成在dos2unix中
  • 使用git 的时候碰到git将unix换行符转换为windows换行符的问题,需要使用dos2unix命令将文件转换为unix格式。dos2unix命令用来将DOS格式的文本文件转换成UNIX格式的(DOS/MAC to UNIX text file format converter)...

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

    展开全文
  • 1. unix2dosdos2unix这两个tool是用来干什么的? 这首先应该要说明一下背景知识: unix类操作系统下,换行字符是\n; 而早期的dos操作系统,其换行字符是由\r\n组成。 所以如果将unix系统下的文本文件copy到...

    1. unix2dos与dos2unix这两个tool是用来干什么的?

    这首先应该要说明一下背景知识:

    unix类操作系统下,换行字符是\n;

    而早期的dos操作系统,其换行字符是由\r\n组成。

    所以如果将unix系统下的文本文件copy到dos系统下

    或者将dos系统下的文本文件拷贝到unix下可能会存在问题。

    所以就出现了unix2dos以及dos2unix这两个tool。

     

    2. 为什么早期的操作系统换行需要用\r\n两个字符来表示?

    关于这个历史就当是看故事吧。

    在计算机出现之前,有一种叫做电传打印机的设备,每秒钟打印10个字符,

    但是当一行打印结束,需要换到下一行时,需要耗时0.2s做换行回车的动作

    将打印机指向下一行起始位置。而如果在这过程中有新的字符传过来,

    则该新字符就会丢失。那为了解决这个问题,研究人员就想到了在回车换行的

    过程中多打印\r\n这两个不会影响到显示的字符来解决可能存在的字符丢失问题。

    而随着计算机的发展,科学家发现用\n一个字符即可达到这种换行回车的目的了。

     

    3. linux系统下的文本文件直接copy到windows下面显示只会显示出一正行长长的字串?

    这个目前我也不确定,需要通过实验以及更丰富的理论知识来确认。

    如果有知道的朋友,也可以跟我讲喔,谢谢。

     

    4. 所以dos系统下文本文件的size要比unix系统下文本文件的size要小?

    毫无疑问,在二者显示内容完全相同的情况下dos系统文本文件每一行都会多一个\r字符。

     

    5. unix2dos源代码应该如何实现?

    综上所讲,我们知道unix2dos其实很简单的就是在每一个\n字符前面不上\r字符。

    假设unix2dos这个tool的用法是:

    ./unix2dos ./unix_file ./dos_file

    那伪代码过程基本如下:

    #include <stdio.h>
    #include <stdlib.h>
    int main(int argc, char *argv[])
    {
        fp_unix = fopen(argv[1], "rb");
        fp_dos = fopem(argv[2], "wb");
        while(!feof(fp_unix))
        {
            char = fgetc(fp_unix);
            if (char != '\n')
            {
                fputc(char, fp_dos);
            }
            else
            {
                fputc('\r', fp_dos);
                fputc(char, fp_dos);
            }
        }
    }

     

    6. dos2unix源代码应该如何实现?

    dos2unix的代码实现很类似,区别在于如果连续的两个字符分别为\r,\n,

    则需要将\n之前的\r字符删除掉。所以网上有朋友写了类似的程序将文件

    中所有的\r字符删除是不正确的,因为\r可能是用户特定有用的字符。

    部分代码如下:

    while(!feof(fp_dos))
        {
            char1 = fgetc(fp_dos);
            char2 = fgetc(fp_dos);
            if (char1 == '\r' && char2 == '\n')
            {
                fputc(char2, fp_unix);
            }
            else
            {
                fputc(char1, fp_unix);
                fputc(char2, fp_unix);
            }
        }

    以上代码并未做诸多参数有效性检查,出错处理等,仅供参考。


     

    展开全文
  • dos2unix和unix2dos

    2020-07-13 23:30:36
    结合popt可以编译出dos2unix以及unix2dos,编译时候需要添加LIBRARY_PATH,设置popt库目录。
  • dos2unix,unix2dos,mac2unix,unix2mac
  • unix2dos批量转换工具(双向) MS桌面版 前一版描述较不祥细,以至于很同朋友不知道可以选择多个文件拖放,故在此多啰嗦几句。 注明:1、窗口支持拖放,单文件或多文件同时拖放均可 2、新版本添加文件列表窗口中点...
  • Linux之dos2unix和unix2dos

    2017-11-23 18:59:38
    1、dos2unixdos2unix】命令用来将dos格式的文本文件转换成unix格式的文件。 DOS下的文本文件是以\r\n作为断行标志的,表示成十六进制就是0D 0A。 Unix下的文本文件是以\n作为断行标志的,表示成十六进制就是0A。 ...

    1、dos2unix

    【dos2unix】命令用来将dos格式的文本文件转换成unix格式的文件。

    • DOS下的文本文件是以\r\n作为断行标志的,表示成十六进制就是0D 0A。
    • Unix下的文本文件是以\n作为断行标志的,表示成十六进制就是0A。

    DOS格式的文本文件在Linux下,用较低版本的vi打开时行尾会显示‘^M’,而且很多命令都无法很好的处理这种格式的文件,如果是个shell脚本,而Unix格式的文本文件在Windows下用Notepad打开时会拼在一起显示。

    语法
    dos2unix [options] [-c convmode] [-o file …] [-n infile outfile …]
    unix2dos [options] [-c convmode] [-o file …] [-n infile outfile …]

    参数说明

    参数 描述
    -h 显示命令dos2unix联机帮助信息
    -k 保持文件时间戳不变
    -n 保留源文件,将转换后的内容输出到新文件
    -o 修改源文件(默认参数)
    -q 静默模式,不输出转换结果信息等
    -c 转换模式
    -V 显示命令版本信息

    示例
    例1-操作1个文件:dos2unix -k file
    例2-操作多个文件:dos2unix -k file1 file2 file3
    例3-不改变源文件,将修改存到新文件:dos2unix -k -n oldfile newfile

    2、unix2dos

    【unix2dos】命令用来将UNIX格式文本文件转成DOS格式文件。
    unix2dos与dos2unix命令操作类似,不再赘述。

    参考资料
    我使用过的Linux命令之dos2unix - 将DOS格式文本文件转换成UNIX格式
    Linux命令学习总结:dos2unix - unix2dos

    展开全文
  • 问题: DOS 下的文本文件是以 "\r\n"作为换行标志的,而 UNIX 下的文本文件是...linux 提供了两种文本格式互相转化的命令:dos2unix 和 unix2dosdos2unix 将 Windows 文件的"\r\n"转化成 linux 文件的"\n";unix2...

    问题:

    DOS 下的文本文件是以 "\r\n"作为换行标志的,而 UNIX 下的文本文件是以"\n"作为换行标志的。所以在 Linux 中使用 Windows 的文本文件时,常常会出现错误。

     

    解决:

    linux 提供了两种文本格式互相转化的命令:dos2unix 和 unix2dos,dos2unix 将 Windows 文件的"\r\n"转化成 linux 文件的"\n";unix2dos 将 linux 文件的"\n"转化成 Windows 文件的"\r\n"

     

    语法格式:

    dos2unix [file]

     

    说明:

        1)在 dos2unix 命令及后面的文件里,每个元素之间都至少要有一个空格。

        2)如果系统没有 dos2unix 命令,可以用 yum -y install dos2unix安装。

    展开全文
  • dos2unix和unix2dos命令使用  dos2unix, unix2dos 用来实现 DOS UNIX text file 转换 aptitude install sysutils 行末: DOS 格式 0d 0a UNIX 格式 0a 可用功能相同的指令組合...
  • dos2unix 安装

    2017-12-25 20:45:29
    今天需要转义windows下面的文件,发现centos6.5下面提示 -bash: dos2unix: command not found, 最终只需要执行这条语句就可以了yum install -y dos2unix
  • 参考了多个网友的方法,结合自己的实际运行,总结如下:  ## 利用find命令,先找出需要进行文本格式转换的文件,再执行dos2unix和unix2dos命令  1.1 执行dos2unix : find . -ty
  • 由于工作电脑网络限制无法安装unix2dosdos2unix命令转换文件,自己实现一个直接上代码,保存为python文件如unix2dos.py然后使用命令unix2dos.py {unix2dos|dos2unix} {dirname|filename}#! /usr/bin/env python # ...
  • dos2unix for Windows

    2020-07-14 23:30:49
    win32 port of Linux useful utility dos2unix. very useful to convert shell script or makefile with CR LF error.
  • dos2unix, unix2dos

    2014-03-05 18:51:05
    dos2unix, unix2dos 用来实现 DOS UNIX text file 转换
  • Linux dos2unix命令

    2019-07-03 10:47:42
    一、dos2unix命令 dos2unix命令用来将DOS格式的文本文件转换成UNIX格式的(DOS/MAC to UNIX text file format converter)。DOS下的文本文件是以\r\n作为断行标志的,表示成十六进制就是0D 0A。而Unix下的文本文件...
  • 开始不知道安装啥包,后来发现在tofrodos这个包里:...使用方法不是unix2dosdos2unix了,而是todos 和fromdos了。 Converts DOS Unix text files, alias tofromdos DOS text files traditionally have CR/LF (car
1 2 3 4 5 ... 20
收藏数 86,315
精华内容 34,526
关键字:

2 dos unix