首页 > 系统相关 >Linux下的^M困惑

Linux下的^M困惑

时间:2023-06-19 11:33:33浏览次数:37  
标签:LF 文件 困惑 Windows file Linux 换行符


我们有时在Windows编辑的文件,放到了Linux环境中,打开文件,可能发现每行结尾多了一个“^M”,导致一些在Windows下能执行的解析程序,放到了Linux中,执行就会报错,问题就出在这个"^M"。

其实这个问题,和操作系统换行符相关。Dos、Windows格式的文件,用0D 0A(CR+LF)作为换行符,而Linux/Unix的则是以0A(LF)作为换行符,因此以Dos底下的文本文件到了Linux,换行符就会多出来一个0D(CR),他会显示为"^M"。

在Linux中vim是无法显示\r,因为ascii中对应的不是Linux中的标准acsii字符,其实其对应的ASCII码十进制形式是13(无显示形式),对应的八进制形式是15(显示为^M)。

对这个问题的解决可能有很多种,

1. 在Windows下使用文本工具进行转换win-->linux,例如notepad++、UltraEdit直接进行转换。

2. 在Linux下,可以用dos2unix file,将文件转换格式。
3. 在Linux下,可以用cat file | tr -d "\r" > new_file,进行替换。
4. 在Linux下,可以用sed 's/^M//old_file > new_file,进行替换。


标签:LF,文件,困惑,Windows,file,Linux,换行符
From: https://blog.51cto.com/u_13950417/6512044

相关文章

  • Linux端口
    端口端口是计算机和外部交互的出入口,可以分为物理端口和虚拟端口。物理端口:USB、HDMI、DP、VGA、RJ45等。虚拟端口:操作系统和外部交互的出入口。端口的分类Linux系统是一个超大号小区,可以支持0到65535个端口,这6万多个端口分为3类进行使用。公认端口:1~1023,通常用于一些系......
  • Linux操作系统加固建议
    1.1.1口令锁定策略1、执行备份(1)、redhat执行备份:#cp-p/etc/pam.d/system-auth/etc/pam.d/system-auth_bak(2)、SUSE9:#cp-p/etc/pam.d/passwd/etc/pam.d/passwd.bak(3)、SUSE10:#cp-p/etc/pam.d/common-password/etc/pam.d/comm......
  • linux免密登录 .ssh 密钥
    1、密钥对制作yum-yinstallsshpass免交互创建密钥对ssh-keygen-tdsa-f~/.ssh/id_dsa-P""ll.ssh/2、密钥分发ssh-copy-id-i~/.ssh/[email protected].$ip免交互方式批量分发公钥##!/bin/bash## createkeyp......
  • linux2.6内核中如何添加新的文件系统
    《边干边学-linux内核指导》中教授了如何在2.4内核中添加myext2文件系统的方法。2.6内核中文件组织稍有变化,通过试验,方法如下:1.将fs/ext2拷贝一份为fs/myext22.cdfs/myext23.sed-i"s/ext2/myext2/g"*     //将fs/myext2目录下出现的所有ext2替换为myext24.sed-i"......
  • Linux系统调用的数量变化
     从2.4的190个到2.6的300多个,越来越多的系统调用数一方面大大增强了Linux对应用的支持,另外一方面也给应用的移植带来了很大的挑战。 source:http://www.cs.unm.edu/~fastos/07meeting/2007.06.18._ColonyPImtg2.ppt More:2.2内核中的syscall列表,http://bluemaster.iu.hio.no/edu......
  • Linux ELF文件装入与执行概述
    ELF是linux中使用最广泛的一种应用程序格式,为了弄清楚Linux内核是如何讲ELF文件精确映射到指定内存空间,上周末把内核sys_execve部分好好看了一遍,小结如下:1.ELF格式ELF指定了进程中text段、bss段、data段等应该放置到进程虚拟内存空间的什么位置,以及记录了进程需要用到的各种动......
  • Linux主机间建立信任关系
    目标:源->目ssh无需输入密码方法:拷贝源 ~/.ssh/id_rsa.pub中的文本内容到目的机器的~/.ssh/authorized_keys最后具体命令步骤:1.【源主机】cat ~/.ssh/id_rsa.pub ,复制其中内容2.【目主机】vi ~/.ssh/authorized_keys,将剪贴板里面的内容黏贴到最后附:1.如果添加信任关系失败......
  • 【Linux交换分区】 交换分区格式浅析
    完成本文,使用了两个工具 1.strace 2.googlecodesearch. ----swap分区有一个大小为PAGE_SIZE的页面,称为signature页,上面记录swap分区的基本信息。staticstructswap_header_v1{charbootbits[1024];/*Spacefordisklabeletc.*/unsig......
  • shell 登录linux服务器并执行命令
    注意里边(eeooff区域)不能定义变量#!/bin/bashscpdist.zipm-p:/data/wwwroot/medical-shop-websshm-p>/dev/null2>&1<<eeooffcd/data/wwwrootrm-rfdist_bakmvdistdist_bakunzipdist.zipexiteeooffechodone!进入容器操作不能用次方法,应该用docker......
  • 一分钟学一个 Linux 命令 - ps
    前言大家好,我是god23bin。欢迎来到《一分钟学一个Linux命令》系列,每天只需一分钟,记住一个Linux命令不成问题。今天要说的是ps命令。什么是ps命令?ps的英文全称是processstatus,意思是进程状态。ps命令是一个常用的Linux命令,用于查看当前系统中运行的进程信息。它......