vim 处理换行符

1. 设置文件格式

:set fileformats=unix,dos

2. 查询当前文件格式

:set fileformat?

3. 转换文件格式

:set fileformat=dos

4. 设置文件结束符

:set endofline

5. 去掉文件结束符

:set noendofline

6. 显示换行

:set list

7. 退出list mode

:set nolist

8. 删除换行符

:%s/\n//g

9. 删除dos文件的回车符^M

:%s/\r//g

时间: 2024-12-12 12:43:50

vim 处理换行符的相关文章

linux 删除换行符

今天需要删除文件里面的换行符,比如有一个文件a.txt: 1,2,3 4,5,6 1,2,3 4,5,6 1,2,3 4,5,6 1,2,3 4,5,6 1,2,3 4,5,6 1.使用vim删除换行符 vim输入命令:%s/\n//g 2.使用sed命令,例如 sed ':t;N;s/\n//;b t' a.txt 结果:1,2,34,5,61,2,34,5,61,2,34,5,61,2,34,5,61,2,34,5,6 解释一下: :t 定义label "t" b t 转到labe

linux下使用vim替换文件中的^M换行符

在linux下打开windows编辑过的文本,会出现由于换行符不一致而导致的内容格式错乱的问题.最常见的就是出现^M . 我出现的问题是:在windows编辑过的文件,传到linux上后再用vim打开,内容没有换行.也就是所有文件内容都在一行.然后再实际换行的位置多了个^M. 下面的方法是网上搜的.其中dos2unix还有一个相对应的unix2dos 1.使用dos2unix命令.一般的分发版本中都带有这个小工具(如果没有可以根据下面的连接去下载),使用起来很方便: $ dos2unix myf

搞了半天原来是DOS换行符的问题^M

今天在windows上的一个文件拷贝到Linux 系统中 没有注意到换行符的问题导致一个批处理始终有问题. 特别是通过记事本拷贝的文件 首先要通过cat -v file.txt 查看输入如下既有换行符的 UrrtIU56567=koiiH8IO188^M kymMPuAGuwBlqSWsWvK0^M ^M就是带的换行符号 $dos2unix -k killws 去掉换行符 $cat -v file.txt UrrtIU56567=koiiH8IO188 kymMPuAGuwBlqSWsWvK0

Linux下的换行符\n\r以及txt和word文档的使用

Linux doc WINDOWS下记事本编写的文档和LINUX下VIM或者GEDIT等编写的文档的不同! 例如WINDOWS下编写的SH脚本,放到LINUX下执行可能会出错. 解决方法: 原因是:Windows下换行符号是“\r\n”,而linux下是“\n”没有”\r”,当shell文件是在Windows下编写的时候,所有的换行符都是“\r\n”,shell下是没办法执行这个文件的,会提示以上错误.请在ultraedit下将该文件执行“File->conversions->Dos to U

shell脚本报错换行符syntax error near unexpected token \r

有时候一些windows下处理不当的sh脚本文件放到linux下执行报错, 提示存在换行符,原因主要就是window下EOL行结束是"\r\n"两个字符, 而linux,unix下是"\n"单字符. 以下vim命令做确认 :e ++ff=unix %    #显示回车符(\r), 具体的在vim环境中会显示为 "^M"符号 :set list    #显示换行符(\n), 具体的再vim环境下回显示为 "$" 符号. 此命令同

Linux文件和windows文件在 换行符的区别

Linux或Unix文件,和windows文件,在来回处理时,如果不注意 换行符的区别,可能导致程序错误!!!深刻的教训.... 在早期的打印机时代,开始新的一行要占用两个字符的时间.如果到了一行的结尾处,你要快速回到新的一行的开头,需要打印针头在纸面上飞快地掠过,常常会在纸面上留下污点.解决这个问题的办法就是,用两个字符:一个字符<Return>来移到第一列,另一个字符<Line feed>来新增一行.计算机产生以后,存储较为昂贵,在如何解决回车换行这个老问题上,人们产生了不同的

git 自动转换行符的坑爹案例

本人写的脚本都是在unix上运行的,但是编写有时候喜欢使用Git拉去到windows的ide进行编写,毕竟我的unix只有命令行的没有ide, 殊不知有一天我的sh执行时出现错误 -bash: ./dailytask.sh: /bin/sh^M: bad interpreter: 没有那个文件或目录 使用vim的命令:set ff?来查看文件格式发现已经是dos,修改格式为unix,命令如下:set ff=unix 接着再运行就好了 如果文件很多都修改成dos格式了,请示用dos2unix来进行

windows与linux换行符

我一次linux上写的脚本,利用vim进行脚本编写,然后下载下来在nodepad++上面打开,在nodepad上面新建了一个文件将原来文件内容复制过去,保存后下载复制文件在linux上面进行运行,发现运行不通过,凡是在空格行都会显示命令不存在,最后发现是nodepad++上面文件的换行是\r\n,将\r字符替换为空字符就可以运行了,后来上网查找才知道,一般文本文件的换行都是\r\n. 在linux vi下可以设置文件的换行符: 可以用filetype设定,如dos(\r\n).unix(\n)等

脚本调试:一次换行符导致的报错

今天早上用notepad写了个简单脚本,如下: [[email protected] ~]# vim /wanwan/nginx_limits.sh  #!/bin/bash #nginx max open files-nums for pid in $(ps aux |grep nginx|grep -v grep |awk '{print $2}') do cat /proc/${pid}/limits | grep 'Max open files' done 调试的时候居然报错,如下: [