分页: 1 / 1

请教了,用什么命令可以把文本中的十进制数全部替换成十六进制数?

发表于 : 2012-01-05 13:51
MP3
十进制数格式为&#ddddd;
十六进制数格式为\uxxxx

似乎强大的sed也搞不定,awk又不太会用

Re: 请教了,用什么命令可以把文本中的十进制数全部替换成十六进制数?

发表于 : 2012-01-05 14:43
eexpress
安装并man uni2ascii
十六进制数,,,这表达得。。。。

Re: 请教了,用什么命令可以把文本中的十进制数全部替换成十六进制数?

发表于 : 2012-01-05 18:21
YeLee
我只知道有个强大的计算器可以用,至于命令,真的不知道,ee果然见识广博。 :em70 :em70 :em70

Re: 请教了,用什么命令可以把文本中的十进制数全部替换成十六进制数?

发表于 : 2012-01-06 8:55
josephyoung
:em70
我只会这种

代码: 全选

$ i=192
$ echo "obase=16;$i" | bc
C0

Re: 请教了,用什么命令可以把文本中的十进制数全部替换成十六进制数?

发表于 : 2012-01-06 21:30
fnan
kose-1@kose-1-desktop:~$ cat file.txt
qf op sf &#7130776 cn &#5130420 tw ye bk kj
uc hk ch bp ci eg yc qz cz dg
pv ee rl gx cq &#119379 jw im gr vi
xq tg vp qy kr pd um oi ss uz
kw &#4021498 ya cu ig tz dq bl at ll
lc on tb rg ux &#7316178 zi iw fl tx
lf &#6713304 rp oo &#4727483 ct wg &#5324554 se ql
bv xe kg rj &#7910184 co &#969580 &#3652 hj dt
&#9030278 sg zb nt zc if va zr yv &#8324862
bf &#1414848 ip nn es pm xo lu pt ke
kose-1@kose-1-desktop:~$ awk '{for (n=1;n<=NF;n++) {if (n==NF) m="\n";else m=" ";if ($n~/&#[0-9]+/) {sub("&#","",$n);printf "\\u%x%c",$n,m} else printf "%s%c",$n,m}}' file.txt
qf op sf \u6cce98 cn \u4e48b4 tw ye bk kj
uc hk ch bp ci eg yc qz cz dg
pv ee rl gx cq \u1d253 jw im gr vi
xq tg vp qy kr pd um oi ss uz
kw \u3d5cfa ya cu ig tz dq bl at ll
lc on tb rg ux \u6fa2d2 zi iw fl tx
lf \u666fd8 rp oo \u4822bb ct wg \u513f0a se ql
bv xe kg rj \u78b328 co \uecb6c \ue44 hj dt
\u89ca86 sg zb nt zc if va zr yv \u7f06fe
bf \u1596c0 ip nn es pm xo lu pt ke
# 大概这样。
那些十进制数变成乱码了?

Re: 请教了,用什么命令可以把文本中的十进制数全部替换成十六进制数?

发表于 : 2012-01-06 21:40
josephyoung
fnan 写了:kose-1@kose-1-desktop:~$ cat file.txt
qf op sf &#7130776 cn &#5130420 tw ye bk kj
uc hk ch bp ci eg yc qz cz dg
pv ee rl gx cq &#119379 jw im gr vi
xq tg vp qy kr pd um oi ss uz
kw &#4021498 ya cu ig tz dq bl at ll
lc on tb rg ux &#7316178 zi iw fl tx
lf &#6713304 rp oo &#4727483 ct wg &#5324554 se ql
bv xe kg rj &#7910184 co &#969580 &#3652 hj dt
&#9030278 sg zb nt zc if va zr yv &#8324862
bf &#1414848 ip nn es pm xo lu pt ke
kose-1@kose-1-desktop:~$ awk '{for (n=1;n<=NF;n++) {if (n==NF) m="\n";else m=" ";if ($n~/&#[0-9]+/) {sub("&#","",$n);printf "\\u%x%c",$n,m} else printf "%s%c",$n,m}}' file.txt
qf op sf \u6cce98 cn \u4e48b4 tw ye bk kj
uc hk ch bp ci eg yc qz cz dg
pv ee rl gx cq \u1d253 jw im gr vi
xq tg vp qy kr pd um oi ss uz
kw \u3d5cfa ya cu ig tz dq bl at ll
lc on tb rg ux \u6fa2d2 zi iw fl tx
lf \u666fd8 rp oo \u4822bb ct wg \u513f0a se ql
bv xe kg rj \u78b328 co \uecb6c \ue44 hj dt
\u89ca86 sg zb nt zc if va zr yv \u7f06fe
bf \u1596c0 ip nn es pm xo lu pt ke
# 大概这样。
那些十进制数变成乱码了?
:em09 变成一个一个小黑方块的,特好看