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

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





原文地址:https://www.cnblogs.com/dreamfine/p/7965367.html