• linux 配置文件.conf 非打印字符出错的研究(一)


    linux 大量使用 .conf配置文件,经常从网上复制的配置信息,保存后,会出现运行错误。原因就是复制到了一个不可见的,无效的非打印字符。如何检查并清除这些无效字符,今天探讨一下。

    利用 linux 的 cat -A 命令可以让非打印字符原型B露,我们利用这个功能,展开研究。

    vi /tmp/test.txt
    

    内容如下:

    aa中有bb
    cat -A /tmp/test.txt
    
    显示结果:aaM-dM-8M--M-fM-^M-^Ibb

    好吧,看上去是一套约定的表示方法,M-是标记开始。一个汉字有三段M-,加一个或二个字符

    写段python代码来看看吧。
    vi /tmp/t.py
    
     
    from __future__ import print_function
    
    for i in range(256):
            print(i,end='=')
            print(chr(i))
    
    quit()

    运行并将输出转向到一个文件,接着看看原形:

    python /tmp/t.py | tee /tmp/test.txt 
    
    cat -A /tmp/test.txt
    
    0=^@$
    1=^A$
    2=^B$
    3=^C$
    4=^D$
    5=^E$
    6=^F$
    7=^G$
    8=^H$
    9=^I$
    10=$
    $
    11=^K$
    12=^L$
    13=^M$
    14=^N$
    15=^O$
    16=^P$
    17=^Q$
    18=^R$
    19=^S$
    20=^T$
    21=^U$
    22=^V$
    23=^W$
    24=^X$
    25=^Y$
    26=^Z$
    27=^[$
    28=^$
    29=^]$
    30=^^$
    31=^_$
    32= $
    33=!$
    34="$
    35=#$
    36=$$
    37=%$
    38=&$
    39='$
    40=($
    41=)$
    42=*$
    43=+$
    44=,$
    45=-$
    46=.$
    47=/$
    48=0$
    49=1$
    50=2$
    51=3$
    52=4$
    53=5$
    54=6$
    55=7$
    56=8$
    57=9$
    58=:$
    59=;$
    60=<$
    61==$
    62=>$
    63=?$
    64=@$
    65=A$
    66=B$
    67=C$
    68=D$
    69=E$
    70=F$
    71=G$
    72=H$
    73=I$
    74=J$
    75=K$
    76=L$
    77=M$
    78=N$
    79=O$
    80=P$
    81=Q$
    82=R$
    83=S$
    84=T$
    85=U$
    86=V$
    87=W$
    88=X$
    89=Y$
    90=Z$
    91=[$
    92=$
    93=]$
    94=^$
    95=_$
    96=`$
    97=a$
    98=b$
    99=c$
    100=d$
    101=e$
    102=f$
    103=g$
    104=h$
    105=i$
    106=j$
    107=k$
    108=l$
    109=m$
    110=n$
    111=o$
    112=p$
    113=q$
    114=r$
    115=s$
    116=t$
    117=u$
    118=v$
    119=w$
    120=x$
    121=y$
    122=z$
    123={$
    124=|$
    125=}$
    126=~$
    127=^?$
    128=M-^@$
    129=M-^A$
    130=M-^B$
    131=M-^C$
    132=M-^D$
    133=M-^E$
    134=M-^F$
    135=M-^G$
    136=M-^H$
    137=M-^I$
    138=M-^J$
    139=M-^K$
    140=M-^L$
    141=M-^M$
    142=M-^N$
    143=M-^O$
    144=M-^P$
    145=M-^Q$
    146=M-^R$
    147=M-^S$
    148=M-^T$
    149=M-^U$
    150=M-^V$
    151=M-^W$
    152=M-^X$
    153=M-^Y$
    154=M-^Z$
    155=M-^[$
    156=M-^$
    157=M-^]$
    158=M-^^$
    159=M-^_$
    160=M- $
    161=M-!$
    162=M-"$
    163=M-#$
    164=M-$$
    165=M-%$
    166=M-&$
    167=M-'$
    168=M-($
    169=M-)$
    170=M-*$
    171=M-+$
    172=M-,$
    173=M--$
    174=M-.$
    175=M-/$
    176=M-0$
    177=M-1$
    178=M-2$
    179=M-3$
    180=M-4$
    181=M-5$
    182=M-6$
    183=M-7$
    184=M-8$
    185=M-9$
    186=M-:$
    187=M-;$
    188=M-<$
    189=M-=$
    190=M->$
    191=M-?$
    192=M-@$
    193=M-A$
    194=M-B$
    195=M-C$
    196=M-D$
    197=M-E$
    198=M-F$
    199=M-G$
    200=M-H$
    201=M-I$
    202=M-J$
    203=M-K$
    204=M-L$
    205=M-M$
    206=M-N$
    207=M-O$
    208=M-P$
    209=M-Q$
    210=M-R$
    211=M-S$
    212=M-T$
    213=M-U$
    214=M-V$
    215=M-W$
    216=M-X$
    217=M-Y$
    218=M-Z$
    219=M-[$
    220=M-$
    221=M-]$
    222=M-^$
    223=M-_$
    224=M-`$
    225=M-a$
    226=M-b$
    227=M-c$
    228=M-d$
    229=M-e$
    230=M-f$
    231=M-g$
    232=M-h$
    233=M-i$
    234=M-j$
    235=M-k$
    236=M-l$
    237=M-m$
    238=M-n$
    239=M-o$
    240=M-p$
    241=M-q$
    242=M-r$
    243=M-s$
    244=M-t$
    245=M-u$
    246=M-v$
    247=M-w$
    248=M-x$
    249=M-y$
    250=M-z$
    251=M-{$
    252=M-|$
    253=M-}$
    254=M-~$
    255=M-^?$

     有种凑内容的罪恶感,但想想万一有人有兴趣仔细查呢。就全列出了。好了先休息一下。$是换行符。

    
    
    
    
    
    
  • 相关阅读:
    【原】ListView的BeginUpdate()和EndUpdate()的用处
    【原】Telerik radwindow 在IE10下偶尔报 unable to get value of the property 'toLowerCase' 的解决办法
    【原】从头学习设计模式(一)——单例模式
    【原】从头学习设计模式(二)——简单工厂模式
    【原】通过JS打开IE新tab(非Window)的解决方案
    【原】高效GTD云工具 ——高效管理你的时间
    【原】安装Win7和Ubuntu双系统后,Win7耳机无声音的解决办法
    【原】从头学习设计模式(三)——工厂方法模式
    【原】备忘:Oracle 中创建存储过程及调用测试一例
    【转】DBA的性格
  • 原文地址:https://www.cnblogs.com/dreamfine/p/7965367.html
Copyright © 2020-2023  润新知