zoukankan      html  css  js  c++  java
  • 在linux下打开文件出现^M,^H

    0 Problem

        在服务器上跑keras实验,然后用tee指令把实验结果保存在文本文件中。

     文本文件在本机linux下用vim打开文件时会出现^M,^H。用sublime打开也会出现奇怪的字符。

    1 Reason

        linux下的换行符是 ,windows是 ,所以windows下的文件在linux下打开的话, 会作为控制字符^M显示。(mac下换行符是 )

        ^H出现的原因未知,估计是keras的进度条显示的方法造成。其实原因不太重要,反正能去掉,保证看的顺眼就好了。

     说到控制字符,可以简单列举几个。如下表所示,其中LF和CR是常用的换行符,SOH, EOT, ESC三个字符在计算机网络的数据链路层的帧传输时用到过,NUL为C中字符串结束提供标志。

    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转换过格式
  • 相关阅读:
    Repeater OnItemCommand 失效
    继承类时的 this 和 base
    想当然造成的的错误
    排序算法二叉树
    href 一个正则表达式的解析 ? 号解析
    给父窗口添加新的代码
    ValidationSummary 控件
    交叉表 学习
    定向思维 C# datediff
    cookie 问题
  • 原文地址:https://www.cnblogs.com/liaohuiqiang/p/7571365.html
Copyright © 2011-2022 走看看