• dos2unix和unix2dos


    一 单次转换 

    用于转换 Windows UNIX 的换行符,通常在windows系统中开发的源码文件,换行符是\r\n,二linux中的文件的换行符是\n。如果不转行可能会出错。

     在windows记事本写一个hello world源码.

    1. #include
    2. int main(void)
    3. {
    4. printf("hello world\n");
    5. return 0;
    6. }

    使用十六进制工具打开,看到0d 0a,如下所示,就是'\r\n'; 

    使用dos2unix命令转换:

    1. $ dos2unix haha.c
    2. dos2unix: converting file haha.c to Unix format ...
    3. e$

      如下所示,0d 0a变成0a了。

     当前文件大小是512字节:

    1. lkmao@ubuntu:/mnt/hgfs/share$ ls -lsh haha.c
    2. 512 -rwxrwxrwx 1 root root 75 1124 20:45 haha.c
    3. lkmao@ubuntu:/mnt/hgfs/share$

     再使用unix2dos转换回去:

    1. lkmao@ubuntu:/mnt/hgfs/share$ unix2dos haha.c
    2. unix2dos: converting file haha.c to DOS format ...
    3. lkmao@ubuntu:/mnt/hgfs/share$

    转换后的十六进制视图:

    查看文件大小:如下所示,文件变成了81字节,增加了6字节,使用wc -l,看到文件就6行,每行的0a 变成了0d 0a,每行增加一个字节。

    1. lkmao@ubuntu:/mnt/hgfs/share$ ls -lsh haha.c
    2. 512 -rwxrwxrwx 1 root root 81 11月 24 20:48 haha.c
    3. lkmao@ubuntu:/mnt/hgfs/share$ wc -l haha.c
    4. 6 haha.c
    5. lkmao@ubuntu:/mnt/hgfs/share$

     二 批量转换

    批量dos2unix:这个还挺难敲,注意中间的空格别整没了。

    find trans/ -type f -exec dos2unix {} \;
    1. lkmao@ubuntu:/mnt/hgfs/share$ find trans/ -type f -exec dos2unix {} \;
    2. dos2unix: converting file trans/haha.c to Unix format ...
    3. dos2unix: converting file trans/hehe.c to Unix format ...
    4. lkmao@ubuntu:/mnt/hgfs/share$

    批量dos2unix:

    1. lkmao@ubuntu:/mnt/hgfs/share$ find trans/ -type f -exec unix2dos {} \;
    2. unix2dos: converting file trans/haha.c to DOS format ...
    3. unix2dos: converting file trans/hehe.c to DOS format ...
    4. lkmao@ubuntu:/mnt/hgfs/share$

  • 相关阅读:
    面试总结-单例模式之Java实现
    iOS开发Swift-4-IBAction,group,音乐播放器-木琴App
    2.1.1进位计数制
    asp.net docker-compose添加dapr配置
    C++:C++基础:C++关键字:this指针
    Asoc codec bringup总结
    nodejs入门及常用模块(http、fs、path)
    BLDC电机控制算法例程
    代码随想录算法训练营|day42
    CF1036C Classy Numbers 题解
  • 原文地址:https://blog.csdn.net/yueni_zhao/article/details/128026329