sed '/^\s*$/d' storage.txt

```bash
有时候生成的数据文件中有空行,或者在空行中还有空格、tab、特殊字符(如:^M)等,而且文件又特别大,那怎么处理呢?可以通过Linux命令sed实现去除这些空行。

如果都是空行,而空行中没有字符的情况(但是不建议这样写)
sed -i '/^$/d' test.txt

建议加入 [[:space:]] 用以匹配空格、tab、^M 等特殊字符
sed -i '/^[[:space:]]*$/d' test.txt

上述建议方式的简化版(本人比较喜爱的一种方式,但特殊字符只匹配过'^M',其他未验证)
sed -i '/^\s*$/d' test.txt

 * (星号)用以匹配空格、tab、'^M'类特殊字符等至少零次

原文链接:https://blog.csdn.net/qq_39937778/article/details/90024085

1.进入命令模式。vim的命令模式,就是在编辑模式下输入":",光标就会跳到屏幕最后一行,并在那里显示冒号,此时就已经进入命令模式。
命令模式的内容均显示在屏幕的最后一行,按下回车键,vim执行命令。

2.在命令模式下输入下列字符:输入:%s/^M$//g

3.回车。即会自动删除该文件中的所有 ^M 字符。

删除行尾空格的命令: :%s/\s\+$//

这句命令到底是什么意思呢?% 指匹配整个文件,s 是置换的意思,^M 注意要用 Ctrl + V Ctrl + M 来输入,M 后面的 $ 代表匹配行尾的内容,最后的 g 则表示每行中匹配到的内容都要置换。理解了命令的含义,就好变通使用了,比如说,要将某个文件中的 Vim 全部替换成 VIM,则可以使用这样的命令::%s/Vim/VIM/g。


vim删除^M
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐