码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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 11月 24 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$

  • 相关阅读:
    第一章 概述 | 计算机网络(谢希仁 第八版)
    ‘v-slot‘ directive doesn‘t support any modifier
    python使用matplotlib.pyplot画图时总会提示“内核似乎挂掉了,很快就会自动重启”
    2023年十款开源测试开发工具推荐(自动化、性能、造数据、流量复制)
    go面试题
    RHCE(五)HTTP、SSL协议综合实验
    [Spring笔记] SpringMVC-04-get请求与post请求发送普通参数
    GitLab CI/CD的原理及应用详解(三)
    全国青少年软件编程等级考试标准 (预备级)1-4级
    IPKISS Tutorials ------merge elements(合并对象)
  • 原文地址:https://blog.csdn.net/yueni_zhao/article/details/128026329
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号