在linux下打开文件出现^M,^H
0 Problem
在服务器上跑keras实验,然后用tee指令把实验结果保存在文本文件中。
文本文件在本机linux下用vim打开文件时会出现^M,^H。用sublime打开也会出现奇怪的字符。
1 Reason
linux下的换行符是\n,windows是\r\n,所以windows下的文件在linux下打开的话,\r会作为控制字符^M显示。(mac下换行符是\r)
^H出现的原因未知,估计是keras的进度条显示的方法造成。其实原因不太重要,反正能去掉,保证看的顺眼就好了。
说到控制字符,可以简单列举几个。如下表所示,其中LF和CR是常用的换行符,SOH, EOT, ESC三个字符在计算机网络的数据链路层的帧传输时用到过,NUL为C中字符串结束提供标志\0。
| Seq | ^J | ^M | ^H | ^A | ^D | ^{ | ||
| 十进制 | 10 | 13 | 08 | 01 | 04 | 27 | 00 | |
| 缩写 | LF | CR | BS | SOH | EOT | ESC | NUL | |
| 字符名 |
Line Feed (换行) |
Carriage Return (回车) |
Backspace (退格) |
Starting of Heading (报头开始) |
End of transmission (传输结束) |
Escape (转义) |
Null (空) |
2 Solution
在vim下把^M替换掉。注意^M的输入方式为:ctrl + v 和ctrl + m
:%s/^M$//g
所以文件里又一些奇怪的字符,也可以这样去掉,比如^H。注意^H的输入方式为:ctrl + v 和ctrl + h
:%s/^H//g
3 Others
网上看到一些别的方法,take notes下。
:set ff=unix # 告诉vim使用unix换行符 find ./ -type f -print0 | xargs -0 dos2unix # 批量查找普通文件,然后执行dos2unix转换过格式
在linux下打开文件出现^M,^H的更多相关文章
- linux下打开文件、编辑文本cat\gedit\nano
cat: 文本编辑器:gedit.nano,要获得根权限,在前面加上sudo
- linux下打开chm文件的方法
windows中,通常情况下,chm文件可以使用系统自带的程序打开,但是linux就没有那么幸运了,那么,如何在linux下打开chm 文件呢?有小编来为您介绍介绍,本篇,小编以ubuntu环境为例 ...
- 解决Windows下文件在Linux下打开出现乱码的问题
目录 问题 原理 解决 总结 参考资料 问题 前几天生病了,Java一直在看代码但是没跟着打,于是决定偷一波小小的懒,直接把教材的代码从Windows通过共享文件夹放到了Linux里面.但是编译的时候 ...
- Linux下打开超大文件的方法
Linux下打开超大文件方法 在Linux下用VIM打开大小几个G.甚至几十个G的文件时,是非常慢的. 这时,我们可以利用下面的方法分割文件,然后再打开. 1 查看文件的前多少行 head -1000 ...
- Linux下的文件及文件后缀名
Linux下的文件及文件后缀名 2013-03-14 15:34 6969人阅读 评论(0) 收藏 举报 ++++++++++++++++++++++++++++++++++++++正文+++++++ ...
- Linux 下查看文件字符编码和转换编码
Linux 下查看文件字符编码和转换编码 如果你需要在Linux中操作windows下的文件,那么你可能会经常遇到文件编码转换的问题.Windows中默认的文件格式是GBK(gb2312),而Linu ...
- Linux Linux下最大文件描述符设置
Linux下最大文件描述符设置 by:授客 QQ:1033553122 1. 系统可打开最大文件描述符设置 查看系统可打开最大文件描述符 # cat /proc/sys/fs/file-max 6 ...
- [转载]linux下core文件设置与查看
转自:https://blog.csdn.net/dingqinghui/article/details/77855330?locationNum=9&fps=1 linux下core文件设置 ...
- linux 下vim文件乱码 cat文件正常处理方法
linux 下vim文件乱码 cat文件正常处理方法 服务器支持中文字符集,cat和其他查看文件命令现在正常,vim还是出现了中文乱码问题, 1.查看文件编码格式 vim 文件 :set fileen ...
随机推荐
- CI 跳转
redirect('home/play/index');
- 将socket5代理转换为http代理
归根结底还是万恶的ZFW,MD弄得现在Google,gmail,dropbox都用不了了,看来这是要万民欢迎大中华局域网的到来了.最近在使用一同学的Shadowsocks来突破GFW的限制,可是电脑o ...
- Access 是/否 字段
Microsoft Access 数据库引擎 SQL 数据类型包含由 Microsoft® Jet 数据库引擎定义的 13 种主要数据类型,以及若干可识别为这些数据类型的有效同义词. 其中,在工作中遇 ...
- linux中的etc目录
etc不是什么缩写,是and so on的意思 来源于 法语的 et cetera 翻译成中文就是 等等 的意思. 至于为什么在/etc下面存放配置文件, 按照原始的UNIX的说法(linux文件结构 ...
- DICOM:docker实现DICOM服务虚拟化
背景: docker,是一个开源的应用容器引擎,眼下大多应用在部署和运维领域,然而因为全然使用沙箱机制,相互之间能够看做独立的主机,且自身对资源的需求也十分有限.远远低于虚拟机.甚至非常多时候.能够直 ...
- 第七篇:使用 fcntl 函数 获取,设置文件的状态标志
前言 当打开一个文件的时候,我们需要指定打开文件的模式( 只读,只写等 ).那么在程序中如何获取,修改这个文件的状态标志呢? 本文将告诉你如何用 fcntl函数 获取指定文件的状态标志. 解决思路 1 ...
- 高性能javascript 文件加载阻塞
高性能javascript javascript脚本执行过程中会中断页面加载,直到脚本执行完毕,此操作阻塞了页面加载,造成性能问题. 脚本位置和加载顺序:如果将脚本放在head内,那么再脚本执行完 ...
- android应用安全——组件通信安全(Intent)
这里主要涉及到了Activity.Content Provider.Service.Broadcast Receiver等.这些如果在Androidmanifest.xml配置不当,会被其他应用调用, ...
- 编写高质量代码–改善python程序的建议(二)
原文发表在我的博客主页,转载请注明出处! 建议七:利用assert语句来发现问题断言(assert)在很多语言中都存在,它主要为调试程序服务,能够快速方便地检查程序的异常或者发现不恰当的输入等,可防止 ...
- JZOJ.5235【NOIP2017模拟8.7】好的排列
Description 对于一个1->n的排列 ,定义A中的一个位置i是好的,当且仅当Ai-1>Ai 或者Ai+1>Ai.对于一个排列A,假如有不少于k个位置是好的,那么称A是一个好 ...