中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-05 13:55
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]数值转换 查看 900 回复 7
楼 主 [求助]数值转换 发表于 2007-07-30 08:51 ·  中国 福建 泉州 电信
新手上路
积分 17
发帖 6
注册 2007-07-29 10:42
19年会员
UID 94234
性别 男
状态 离线
ip.txt 内容如下
1.1.0.0 1.1.0.255 IANA CZ88.NET
3.0.0.0 3.255.255.255 美国 新泽西通用电气公司
4.0.0.0 4.10.255.255 美国 CZ88.NET
以下三十万行以上面相同数值。。。。。。。。。。。


1.1.0.0 转换 1*256*256*256+1*256*256+0*256+0 = 16842752
1.1.0.255 转换 1*256*256*256+1*256*256+0*256+255 = 16843007


转换成生成一个ip2.txt
16842752 16843007 IANA CZ88.NET

以下几十万行数值都这样
2 发表于 2007-07-30 10:44 ·  中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725
发帖 1,160
注册 2006-09-23 12:00
19年会员
UID 63486
来自 河北廊坊
状态 离线
以下几十万行数值都这样


这一句话就把我吓住了。
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
3 发表于 2007-07-30 11:15 ·  中国 福建 泉州 电信
新手上路
积分 17
发帖 6
注册 2007-07-29 10:42
19年会员
UID 94234
性别 男
状态 离线
循环搞呀,才三十万行,
4 发表于 2007-07-31 10:16 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线
用gawk试试。
5 发表于 2007-07-31 19:56 ·  中国 福建 泉州 晋江市 电信
新手上路
积分 17
发帖 6
注册 2007-07-29 10:42
19年会员
UID 94234
性别 男
状态 离线
能给个源码不 偶是菜鸟
6 发表于 2007-08-03 17:44 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线
命令行执行:
gawk -f MyPro.awk ip.txt


MyPro.awk的内容如下:
BEGIN{
infomations="如果你没有Gawk,可以从这里下载得到:\nhttp://www.cn-dos.net/forum/viewthread.php?tid=31098&page=1#pid205571\n"
print infomations;
}

{
if(($1~/^+\.+\.+\.+$/)&&($2~/^+\.+\.+\.+$/)){
split($1,ip_first,".");
split($2,ip_last,".");
$1=$2=0;
for(i=1;i<=4;i++){
if((ip_first>256||ip_first<0)||(ip_last<0||ip_last>256)){print "ERROR!!!\n\tBad IP-Address format!Exit...";exit;};
$1+=ip_first*255**(4-i);
$2+=ip_last*255**(4-i);
}
#print $0;
#如果(print $0)不能满足要求,可以用下面这个来输出,格式要规矩些.
printf("%11.0f %11.0f",$1,$2);
$1=$2="";
for(_=3;_<=NF;_++){printf " "$_;}
print "";
}
}
7 发表于 2007-08-03 22:34 ·  中国 福建 泉州 晋江市 电信
新手上路
积分 17
发帖 6
注册 2007-07-29 10:42
19年会员
UID 94234
性别 男
状态 离线
谢谢ing
8 发表于 2007-08-04 14:10 ·  中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725
发帖 1,160
注册 2006-09-23 12:00
19年会员
UID 63486
来自 河北廊坊
状态 离线
这个gawk资料一直还没有看呢。
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
论坛跳转: