02 DOS (Windows 系统) 与 Linux 的断行字符(即换行符);linux文件后有个^M怎么去掉

本文介绍了DOS(Windows)系统与Linux系统中不同的断行字符,DOS使用CRLF(^M$),而Linux使用LF($)。在跨平台开发中,这可能导致文件格式问题,尤其是对于shell脚本。解决方法是使用dos2unix或unix2dos命令进行格式转换,以确保程序正确执行。转换时可以使用选项-k保留原始时间戳,并通过-n创建新文件以保留原文件。

DOS 系统 与 Linux 的断行字符


在这里插入图片描述

DOS (Windows 系统) 与 Linux 断行字符(换行符)的不同。

  • DOS (Windows 系统) 使用的断行字符为 ^M$
  • Linux系统 使用的断行字符为 $

^M = CR
$ = LF

大部分编程人员都是在Dos系统开发,而在linux系统发布。所以经常会遇见换行符的问题。

在 Linux 底下的指令在开始执行时,他的判断依据是 『Enter』,而 Linux 的 Enter 为 LF 符号, 不过,由于 DOS 的断行符号是 CRLF ,也就是多了一个 ^M 的符号出来。 在这样的情况下,如果是一个 shell script 的程序档案,可能造成『程序无法执行』的状态~ 因为他会误判程序所下达的指令内容啊!

通过简单的指令进行格式的转换

命令:dos2unix 或 unix2dos
选项与参数:
-k :保留该档案原本的 mtime 时间格式 (不更新档案上次内容经过修订的时间)
-n :保留原本的旧档,将转换后的内容输出到新档案,如: dos2unix -n old new

dos2unix [-kn] file [newfile]
unix2dos [-kn] file [newfile]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

EngineerForSoul

你的鼓励是我孜孜不倦的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值