免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123
最近访问板块 发新帖
楼主: edgevil
打印 上一主题 下一主题

如何将16进制转换为10进制 [复制链接]

论坛徽章:
0
21 [报告]
发表于 2003-07-25 14:40 |只看该作者

如何将16进制转换为10进制

譬如说:
number=\x00020fa0c0a843fe0000000000000000

echo $number | cut -c 7-10 是取0fa0这四个字符
dd conv=ucase 2>/dev/null 是将0fa0的小写字母转化为大写字母,并把标准错误产生的信息输出到空。

ip1=`echo "ibase=16;$ip1" | bc`
是将上面得到的16进制值转化成10进制。

论坛徽章:
0
22 [报告]
发表于 2003-07-25 14:49 |只看该作者

如何将16进制转换为10进制

# cat file
UOMNL
query tli tcp /dev/tcp \x00020824c0a85bfe0000000000000000
master tli tcp /dev/tcp \x00020824c0a85bfe0000000000000000


UOTYO
query tli tcp /dev/tcp \x00020833c0a843fe0000000000000000
master tli tcp /dev/tcp \x00020833c0a843fe0000000000000000


UOTYO_BACKUP
query tli tcp /dev/tcp \x00020fa0c0a843fe0000000000000000
master tli tcp /dev/tcp \x00020fa0c0a843fe0000000000000000
# ./test
# cat newfile
UOMNL
query=NLWNSCK,192.168.91.254,2084
master=NLWNSCK,192.168.91.254,2084


UOTYO
query=NLWNSCK,192.168.67.254,2099
master=NLWNSCK,192.168.67.254,2099


UOTYO_BACKUP
query=NLWNSCK,192.168.67.254,4000
master=NLWNSCK,192.168.67.254,4000

在solaris8下做的测试,和你要求的一致吗?

论坛徽章:
0
23 [报告]
发表于 2003-07-25 14:53 |只看该作者

如何将16进制转换为10进制

太棒了!!
就是要的这种形式!
我的也是solaris8
但我测试的时候提示我
~  172 > conv.sh
conv.sh: syntax error at line 25: `end of file' unexpected
不知道为什么!
我正尝试单步来

论坛徽章:
0
24 [报告]
发表于 2003-07-25 15:04 |只看该作者

如何将16进制转换为10进制

可能有些地方没改完吧
再发一份,拷这个吧
# cat test
#!/bin/sh
if [ -f newfile ]
then
mv newfile newfile.bak
fi
line=`cat file | wc -l `
while [ ${i:=1} -le $line ]
do
string=`sed -n ${i}p file`
echo $string | grep -w "tli" > /dev/null
if [ $? -ne 0 ]
then
echo $string >> newfile
else
number=`echo $string | sed "s/.*tli tcp \/dev\/tcp //"`
port=`echo $number | cut -c 7-10 | dd conv=ucase 2>/dev/null`
port=`echo "ibase=16;$port" | bc`
ip1=`echo $number | cut -c 11-12 | dd conv=ucase 2>/dev/null`
ip1=`echo "ibase=16;$ip1" | bc`
ip2=`echo $number | cut -c 13-14 | dd conv=ucase 2>/dev/null`
ip2=`echo "ibase=16;$ip2" | bc`
ip3=`echo $number | cut -c 15-16 | dd conv=ucase 2>/dev/null`
ip3=`echo "ibase=16;$ip3" | bc`
ip4=`echo $number | cut -c 17-18 | dd conv=ucase 2>/dev/null`
ip4=`echo "ibase=16;$ip4" | bc`
echo "`echo $string | cut -d\" \" -f1`=NLWNSCK,$ip1.$ip2.$ip3.$ip4,$port" >> newfile
fi
i=`expr $i + 1`
done

论坛徽章:
0
25 [报告]
发表于 2003-07-25 15:23 |只看该作者

如何将16进制转换为10进制

好的
我再试

论坛徽章:
0
26 [报告]
发表于 2003-07-25 21:35 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
27 [报告]
发表于 2003-07-26 10:14 |只看该作者

如何将16进制转换为10进制

这都被你发现了

dscp是什么东东啊?赐教一番?thks

论坛徽章:
0
28 [报告]
发表于 2003-07-28 14:54 |只看该作者

如何将16进制转换为10进制

原帖由 "smileinwind" 发表:
可能有些地方没改完吧
再发一份,拷这个吧
# cat test
#!/bin/sh
if [ -f newfile ]
then
mv newfile newfile.bak
fi
line=`cat file | wc -l | tr -s " " | cut -d" " -f2`
...........................
   

真是高人啊!~~~~~~~~~佩服!!


  1. line=`cat file | wc -l | tr -s " " | cut -d" " -f2`
复制代码


这句直接用 line=`cat file | wc -l` 不也可以了吗?
不知道加上tr 和cut 有什么别的含义??

论坛徽章:
0
29 [报告]
发表于 2003-07-28 15:36 |只看该作者

如何将16进制转换为10进制

原帖由 "yoursmile" 发表:
不也可以了吗?
不知道加上tr 和cut 有什么别的含义??
   


你说的没错,那两个语句真是多余,谢谢你的提醒。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP