当前位置: 首页 > news >正文

^M 字符处理

windows用的是\r\n来做分行的linux是\n

一、文本格式转换中的^M符号

  1. 跨平台文本文件

    • 当在Windows系统下编辑的文本文件被转移到Unix/Linux系统下打开时,由于Windows系统使用CR+LF(\r\n)作为行结束符,而Unix/Linux系统使用LF(\n)作为行结束符,因此可能会出现M这种特殊形式出现。
  2. 文本编辑器设置

    • 在某些文本编辑器(如Vim)中,如果编辑器被配置为识别Unix格式的文件,但打开的文件实际上是Dos格式的(即使用CR+LF作为行结束符),那么编辑器可能会将CR字符显示为^M。

二、历史和技术背景

  1. 打字机时代

    • 在计算机诞生之前,打字机使用两个字符来开始一个新行:首先是回车(CR),将打印头移回行首;然后是换行(LF),将纸张向上移动一行。这两个动作分别对应着\r和\n字符。
  2. 计算机存储

    • 在计算机存储成本高昂的年代,为了节省存储空间,一些系统(如MS-DOS和早期的Windows)选择了沿用打字机的回车换行传统,使用CR+LF作为行结束符。
  3. 编辑器识别

    • 现代文本编辑器(如Vim)通常能够识别并处理不同格式的行结束符。但是,如果编辑器的设置与文件的实际格式不匹配,就可能会出现^M这样的特殊表示。

三、解决方法

  1. 修改编辑器设置

    • 在Vim中,可以通过设置fileformats选项来指定编辑器能够自动识别的文件格式集合。例如,将fileformats设置为unix,dos,这样Vim就可以自动识别并处理Unix和Dos格式的文件了。
  2. 使用转换工具

    • 可以使用如dos2unix这样的工具将Windows下的文本文件转换成符合Unix/Linux系统要求的文件。
  3. 手动替换

    • 在文本编辑器中,可以使用全局替换功能将^M符号(实际上是CR字符)替换掉。在Vim中,可以使用:%s/\r//g这样的命令来全局替换CR字符。
  4. dos2unix <文件名>
  5. 读取后做最后一个字符的值判断处理

综上所述,^M符号主要在跨平台文本文件传输和编辑器设置不匹配时生成。了解这一点有助于我们更好地处理文本文件中的行结束符问题。

相关文章:

^M 字符处理

windows用的是\r\n来做分行的linux是\n 一、文本格式转换中的^M符号 跨平台文本文件&#xff1a; 当在Windows系统下编辑的文本文件被转移到Unix/Linux系统下打开时&#xff0c;由于Windows系统使用CRLF&#xff08;\r\n&#xff09;作为行结束符&#xff0c;而Unix/Linux系统…...

vxe-table v4.8+ 与 v3.10+ 虚拟滚动支持动态行高,虚拟渲染更快了

Vxe UI vue vxe-table v4.8 与 v3.10 解决了老版本虚拟滚动不支持动态行高的问题&#xff0c;重构了虚拟渲染&#xff0c;渲染性能大幅提升了&#xff0c;行高自适应和列宽拖动都支持&#xff0c;大幅降低虚拟渲染过程中的滚动白屏&#xff0c;大量数据列表滚动更加流畅。 自适…...

【新闻文本分类识别】Python+CNN卷积神经网络算法+深度学习+人工智能+机器学习+文本处理

一、介绍 文本分类识别系统。本系统使用Python作为主要开发语言&#xff0c;首先收集了10种中文文本数据集&#xff08;“体育类”, “财经类”, “房产类”, “家居类”, “教育类”, “科技类”, “时尚类”, “时政类”, “游戏类”, “娱乐类”&#xff09;&#xff0c;然…...

算法效率的计算

目录 一、如何衡量一个算法的好坏&#xff1f;二、时间复杂度1. 时间复杂度的计算方法2. 时间复杂度习题 三、空间复杂度1. 空间复杂度的计算方法2. 空间复杂度习题 四、常见复杂度对比五、复杂度oj题1. 消失的数字2. 轮转数组 一、如何衡量一个算法的好坏&#xff1f; 如果一…...

迷茫内耗的一天

迷茫的一天 今天看了看动态规划&#xff0c;不知不觉看了三四个小时&#xff0c;英语也没背&#xff0c;项目也已经停止了一个星期就看了几个小时的xml文件(不停ctrlB)&#xff0c;好累&#xff0c;感觉要学的好多。这难道是必经之路吗&#xff1f; 一个星期算法已经刷了40道题…...

【android12】【AHandler】【4.AHandler原理篇ALooper类方法全解】

AHandler系列 【android12】【AHandler】【1.AHandler异步无回复消息原理篇】-CSDN博客 【android12】【AHandler】【2.AHandler异步回复消息原理篇】-CSDN博客 【android12】【AHandler】【3.AHandler原理篇AHandler类方法全解】-CSDN博客 其他系列 本人系列文章-CSDN博客…...

在canon的生活

街道地址 朝阳区针织路23号中国人寿金融中心33层 大家好&#xff01;【ji建军】 今天是在我佳能工作的最后一天&#xff0c;1989毕业后入公司&#xff0c;从一而终&#xff0c;三十五年整。 感谢宫里总经理和历届领导对我的信任和教导&#xff1b; &#xff08;唐晓阳老师、内…...

萤石设备视频接入平台EasyCVR私有化部署视频平台高速公路视频上云的高效解决方案

经济的迅猛发展带来了高速公路使用频率的激增&#xff0c;其封闭、立交和高速的特性变得更加显著。然而&#xff0c;传统的人工巡查方式已不足以应对当前高速公路的监控挑战&#xff0c;监控盲点和响应速度慢成为突出问题。比如&#xff0c;非法占用紧急车道的情况屡见不鲜&…...

如何解决docker镜像下载失败问题

经常用docker的朋友都知道&#xff0c;docker hub的镜像仓库经常访问不通 rootiZwz97kfjnf78copv1ae65Z:~# docker pull ubuntu:18.04 Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.…...

Python_PyCharm无法打开终端命令行最终解决方案(实测)

关于PyCharm在加载库时出现无法打开终端的问题&#xff0c;相信大家已见到网上众多的添加变量的方式&#xff0c;但也有很多童鞋无法解决&#xff0c;那是因为我们忽略了我们测试虚拟化本身的环境因素&#xff0c;不多赘述&#xff0c;请看以下&#xff1a; 环境&#xff1a;V…...

若依-侧边栏开关按钮禁用,侧边栏始终保持展开

若依框架&#xff0c;当首页为echarts图时&#xff0c;侧边栏展开关闭echarts会超出 解决思路&#xff1a; 当菜单为首页时&#xff0c;侧边栏开关按钮禁用&#xff0c;侧边栏始终保持展开 \src\store\modules\app.jstoggleSideBar(withoutAnimation, typeVal) {if (typeVal …...

洛雪音乐 1.6.1| 全网音乐免费听,附加音源

洛雪音乐汇集了多个平台的音乐资源&#xff0c;让你可以免费播放各种热门音乐。有经典怀旧的老歌&#xff0c;有最近火爆网络的热曲&#xff0c;还有很多原创音乐人发布的最新作品。因触动资本利益&#xff0c;现已转为空壳软件&#xff0c;需要导入音源来使用。功能特点包括&a…...

进程(Process)、线程(Thread)和协程(Coroutine)

进程&#xff08;Process&#xff09;、线程&#xff08;Thread&#xff09;和协程&#xff08;Coroutine&#xff09;都是计算机中实现并发的重要概念&#xff0c;它们有以下区别&#xff1a; 进程是操作系统资源分配的最小单位&#xff0c;也是程序的一次执行过程。进程拥有独…...

蓝牙 BLE 详解

参考链接 BLE博客书籍推荐&#xff1a;Intro to Bluetooth Low Energy: The easiest way to learn BLE...

Spring 获取Header

Spring 获取Header 传统方法获取使用 Spring 获取 Header 传统方法获取 尝试获取一个 User-Agent,(表示的是哪个客户端在访问) // 传统方法获取 HeaderRequestMapping("/getHeader")public String getHeader(HttpServletRequest request) {String userAgent reques…...

第8课 字符串

一、字符串的创建 字符串(string)是Python中最常用的数据类型&#xff0c;是不可变序列的一种&#xff0c;序列的通用操作也适用于字符串。字符串的标志性符号是引号&#xff0c;单引号或者双引号都可以&#xff08;注意&#xff1a;是英文输入法下的引号&#xff0c;必须成对…...

告别繁琐统计,一键掌握微信数据

微信数据管理的挑战在数字时代&#xff0c;微信已成为我们日常沟通和商业活动的重要工具。然而&#xff0c;随着微信号数量的增加&#xff0c;手动统计每个账号的数据变得越来越繁琐。从好友数量到会话记录&#xff0c;再到转账和红包&#xff0c;每一项都需要耗费大量的时间和…...

企业出海网络:SD-WAN与专线混合组网方案

随着越来越多的国内企业进入海外市场&#xff0c;包括出海电商、游戏、社交网络和区块链等领域&#xff0c;它们通常需要使用海外服务器。同时&#xff0c;这些企业在国内也会拥有自己的机房、IDC或依赖其他云服务提供商的机房。在这种情况下&#xff0c;如何实现国内外之间的高…...

胡壮麟《语言学教程》第五版PDF英文版+中文版翻译

胡壮麟《语言学教程》中文版&#xff1a;https://pan.quark.cn/s/9491130ec572 《语言学教程》&#xff08;英文版&#xff09;是一部经典的语言学教材&#xff0c;自 1988 年面世以来&#xff0c;被众多高校广泛采用&#xff0c;长销不衰。该教材自出版以来不断修订&#xff…...

DriftingBlues: 1渗透测试

靶机&#xff1a;DriftingBlues: 1 DriftingBlues: 1 ~ VulnHubhttps://www.vulnhub.com/entry/driftingblues-1,625/ 攻击机&#xff1a;kail linux 2024 1,将两台虚拟机网络连接都改为NAT模式&#xff0c;并查看靶机的MAC地址 2&#xff0c;攻击机上做主机扫描发现靶机 靶机I…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别

一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频

使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...

Spring Boot 实现流式响应(兼容 2.7.x)

在实际开发中&#xff0c;我们可能会遇到一些流式数据处理的场景&#xff0c;比如接收来自上游接口的 Server-Sent Events&#xff08;SSE&#xff09; 或 流式 JSON 内容&#xff0c;并将其原样中转给前端页面或客户端。这种情况下&#xff0c;传统的 RestTemplate 缓存机制会…...

STM32+rt-thread判断是否联网

一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

c#开发AI模型对话

AI模型 前面已经介绍了一般AI模型本地部署&#xff0c;直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型&#xff0c;但是目前国内可能使用不多&#xff0c;至少实践例子很少看见。开发训练模型就不介绍了&am…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)

本文把滑坡位移序列拆开、筛优质因子&#xff0c;再用 CNN-BiLSTM-Attention 来动态预测每个子序列&#xff0c;最后重构出总位移&#xff0c;预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵&#xff08;S…...

ios苹果系统,js 滑动屏幕、锚定无效

现象&#xff1a;window.addEventListener监听touch无效&#xff0c;划不动屏幕&#xff0c;但是代码逻辑都有执行到。 scrollIntoView也无效。 原因&#xff1a;这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作&#xff0c;从而会影响…...

GO协程(Goroutine)问题总结

在使用Go语言来编写代码时&#xff0c;遇到的一些问题总结一下 [参考文档]&#xff1a;https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现&#xff1a; 今天在看到这个教程的时候&#xff0c;在自己的电…...

(一)单例模式

一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...

通过MicroSip配置自己的freeswitch服务器进行调试记录

之前用docker安装的freeswitch的&#xff0c;启动是正常的&#xff0c; 但用下面的Microsip连接不上 主要原因有可能一下几个 1、通过下面命令可以看 [rootlocalhost default]# docker exec -it freeswitch fs_cli -x "sofia status profile internal"Name …...