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

sh/bash/dash/ksh/zsh等Shell脚本
回复
MP3
帖子: 12
注册时间: 2010-08-24 19:40

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

#1

帖子 MP3 » 2012-01-05 13:51

十进制数格式为&#ddddd;
十六进制数格式为\uxxxx

似乎强大的sed也搞不定,awk又不太会用
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

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

#2

帖子 eexpress » 2012-01-05 14:43

安装并man uni2ascii
十六进制数,,,这表达得。。。。
● 鸣学
头像
YeLee
论坛版主
帖子: 26406
注册时间: 2008-08-13 8:48
系统: Fundu i64
来自: 东海硇州,一双管钥。
联系:

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

#3

帖子 YeLee » 2012-01-05 18:21

我只知道有个强大的计算器可以用,至于命令,真的不知道,ee果然见识广博。 :em70 :em70 :em70
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
头像
josephyoung
帖子: 158
注册时间: 2011-11-05 18:53
来自: 南极圈

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

#4

帖子 josephyoung » 2012-01-06 8:55

:em70
我只会这种

代码: 全选

$ i=192
$ echo "obase=16;$i" | bc
C0
fnan
帖子: 919
注册时间: 2009-07-01 22:04

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

#5

帖子 fnan » 2012-01-06 21:30

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
# 大概这样。
那些十进制数变成乱码了?
bash不如perl精妙,学不到lisp的皮毛,远不够c++强悍,不过可以用。
头像
josephyoung
帖子: 158
注册时间: 2011-11-05 18:53
来自: 南极圈

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

#6

帖子 josephyoung » 2012-01-06 21:40

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 变成一个一个小黑方块的,特好看
回复