当前位置: 首页 > 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…...

Docker 离线安装指南

参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性&#xff0c;不同版本的Docker对内核版本有不同要求。例如&#xff0c;Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本&#xff0c;Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...

大话软工笔记—需求分析概述

需求分析&#xff0c;就是要对需求调研收集到的资料信息逐个地进行拆分、研究&#xff0c;从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要&#xff0c;后续设计的依据主要来自于需求分析的成果&#xff0c;包括: 项目的目的…...

PHP和Node.js哪个更爽?

先说结论&#xff0c;rust完胜。 php&#xff1a;laravel&#xff0c;swoole&#xff0c;webman&#xff0c;最开始在苏宁的时候写了几年php&#xff0c;当时觉得php真的是世界上最好的语言&#xff0c;因为当初活在舒适圈里&#xff0c;不愿意跳出来&#xff0c;就好比当初活在…...

unix/linux,sudo,其发展历程详细时间线、由来、历史背景

sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...

在Ubuntu24上采用Wine打开SourceInsight

1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...

【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论

路径问题的革命性重构&#xff1a;基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中&#xff08;图1&#xff09;&#xff1a; mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...

scikit-learn机器学习

# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...

Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)

引言 在人工智能飞速发展的今天&#xff0c;大语言模型&#xff08;Large Language Models, LLMs&#xff09;已成为技术领域的焦点。从智能写作到代码生成&#xff0c;LLM 的应用场景不断扩展&#xff0c;深刻改变了我们的工作和生活方式。然而&#xff0c;理解这些模型的内部…...

nnUNet V2修改网络——暴力替换网络为UNet++

更换前,要用nnUNet V2跑通所用数据集,证明nnUNet V2、数据集、运行环境等没有问题 阅读nnU-Net V2 的 U-Net结构,初步了解要修改的网络,知己知彼,修改起来才能游刃有余。 U-Net存在两个局限,一是网络的最佳深度因应用场景而异,这取决于任务的难度和可用于训练的标注数…...

【iOS】 Block再学习

iOS Block再学习 文章目录 iOS Block再学习前言Block的三种类型__ NSGlobalBlock____ NSMallocBlock____ NSStackBlock__小结 Block底层分析Block的结构捕获自由变量捕获全局(静态)变量捕获静态变量__block修饰符forwarding指针 Block的copy时机block作为函数返回值将block赋给…...