1. 程式人生 > >linux 配置文件.conf 非打印字符出錯的研究(一)

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

highlight 運行錯誤 配置文件 檢查 bsp 換行符 span 字符 future

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-^?$

有種湊內容的罪惡感,但想想萬一有人有興趣仔細查呢。就全列出了。好了先休息一下。$是換行符。



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