Vim编辑windows格式文件出现的[noeol][dos]的含义、解决方法及方法解释 您所在的位置:网站首页 vi格式是什么意思 Vim编辑windows格式文件出现的[noeol][dos]的含义、解决方法及方法解释

Vim编辑windows格式文件出现的[noeol][dos]的含义、解决方法及方法解释

2024-06-26 07:39| 来源: 网络整理| 查看: 265

文章目录 前言[dos][noeol]

前言

最近想要将保存再windows的文件传到linux上,传进去保存文件之后,用vim打开发现在文件的底下出现了[dos] [noeol]这两个标志。然后就很疑问这是什么以及应该怎么解决

其实这两个问题产生的原因都是因为windows和linux对于文件的不同格式而引发的问题。 这是我在windows下的文件: 在这里插入图片描述 等我传到linux后,用cat -A ceshi.txt,查看到的就是如下 在这里插入图片描述 会有一个[noeol] [dos]的标志。

[dos]

这个标志的产生原因是因为在windows下,文件的换行符是\r\n,而在linux下换行符是\n,所以,使用cat -A ceshi.txt会发现,多了一个^M,而正常linux文件的就只有一个$,所以说,我们要想办法把这个^M去掉就可以消除[dos]标志了。

解决的方法:

dos2unix ceshi.txt 如果没有dos2unix,首先得安装dos2unix, 输入sudo apt-get install dos2unix,这个一般都安装了

sed -i 's/^M//g' ceshi.txt 这里的^M是用ctrl + V,然后ctrl + M打出来的 sed -i的意思是直接在文件里编辑,s是代表替换,/^M//这里代表将^M替换成空,g是代表替换所有列 所以这个命令的含义就是将ceshi.txt文件里的所有的^M都替换成空

使用vim 首先vim ceshi.txt,然后:1, $s/^M//g 这里得含义和第2种方法是一样的,但是不同点在于1, $这里,是指定处理从第一行到最后一行,$代表最后一行 同样这里的^M是用ctrl + V,然后ctrl + M打出来的

cat ceshi.txt |tr -d '\r' > ceshi.txt tr -d是删除指定的字符,\r是可以代表^M

[noeol]

这里的这个noeol也就是no end-of-line的意思,就是结尾没有一个换行符,这也是因为windows的文件的问题,因为其末尾是没有换行的

解决方法:

使用vim 当你的文件有这种[noeol]的标志时,可以vim打开文件,然后输入:wq保存,就可以把[noeol]消除掉。

sed -i -e '$a\' a的意思是追加,就是在末尾追加一个换行。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有