免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6640 | 回复: 9
打印 上一主题 下一主题

[文本处理] 奇怪了,这个脚本在OPENWRT 上不能运行 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-06-06 10:40 |只看该作者 |倒序浏览
  1. #!/bin/bash


  2. #将起止IP地址转为成数字:

  3. star=`awk -F. '{printf "%.f",$1*256^3+$2*256^2+$3*256+$4}' <<<"${LINE%%-*}"`
  4. end=`awk -F. '{printf "%.f",$1*256^3+$2*256^2+$3*256+$4}' <<<"${LINE##*-}"`


  5. #生成两个IP之间所有地址

  6. seq -f "%.f"  $star $end  |awk  '{i=$0;print int(i/256^3),int(i%256^3/256^2),int(i%256^3%256^2/256),i%256^3%256^2%256}' OFS=. < /tmp/ip.txt
复制代码

论坛徽章:
20
卯兔
日期:2015-01-26 22:05:142015亚冠之萨济拖拉机
日期:2015-09-10 15:15:282015亚冠之阿尔希拉尔
日期:2015-09-25 17:37:53程序设计版块每日发帖之星
日期:2015-10-03 06:20:00程序设计版块每日发帖之星
日期:2015-12-09 06:20:00CU十四周年纪念徽章
日期:2015-12-17 09:07:15程序设计版块每日发帖之星
日期:2015-12-25 06:20:34程序设计版块每日发帖之星
日期:2015-12-25 06:20:34程序设计版块每日发帖之星
日期:2015-12-25 06:20:342015亚冠之广州富力
日期:2015-08-27 19:29:56每日论坛发贴之星
日期:2015-08-26 06:20:002015亚冠之阿尔希拉尔
日期:2015-05-18 17:26:27
2 [报告]
发表于 2015-06-06 11:33 |只看该作者

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
3 [报告]
发表于 2015-06-06 12:42 |只看该作者
回复 1# l3lf


    #!/bin/bash


#将起止IP地址转为成数字:

star=`awk -F. '{printf "%.f",$1*256^3+$2*256^2+$3*256+$4}' <<<"${LINE%%-*}"`
end=`awk -F. '{printf "%.f",$1*256^3+$2*256^2+$3*256+$4}' <<<"${LINE##*-}"`

上面的$LINE从哪来 ?

#生成两个IP之间所有地址

seq -f "%.f"  $star $end  |awk  '{i=$0;print int(i/256^3),int(i%256^3/256^2),int(i%256^3%256^2/256),i%256^3%256^2%256}' OFS=. < /tmp/ip.txt   

上面的< 重定向是不是写反了?


论坛徽章:
0
4 [报告]
发表于 2015-06-08 09:03 |只看该作者
回复 3# 关阴月飞


你好,这个脚本是您指导我的写的,到现在还万分感谢。
详情见http://bbs.chinaunix.net/thread-4126069-1-1.html

我在ENTWARE和centos上都运行正常,
唯独在OPENWRT上运行显示 /tmp/qq: line 1: syntax error: unexpected redirection

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
5 [报告]
发表于 2015-06-08 10:16 |只看该作者
回复 4# l3lf


    应该是系统兼容问题了,要不你把脚本内容再贴一下,然后再贴一下详细的运行过程和报错内容

论坛徽章:
0
6 [报告]
发表于 2015-06-08 12:42 |只看该作者
本帖最后由 l3lf 于 2015-06-08 12:46 编辑
  1. root@IPHONE5S:~# cat /tmp/qq
  2. #!/bin/bash


  3. #将起止IP地址转为成数字:

  4. star=`awk -F. '{printf "%.f",$1*256^3+$2*256^2+$3*256+$4}' <<<"${LINE%%-*}"`
  5. end=`awk -F. '{printf "%.f",$1*256^3+$2*256^2+$3*256+$4}' <<<"${LINE##*-}"`


  6. #生成两个IP之间所有地址

  7. seq -f "%.f"  $star $end  |awk  '{i=$0;print int(i/256^3),int(i%256^3/256^2),int(i%256^3%256^2/256),i%256^3%256^2%256}' OFS=. < /tmp/ip.txt
  8. root@IPHONE5S:~# cat /tmp/ip.txt
  9. 192.168.1.1-192.168.1.5
  10. root@IPHONE5S:~# sh /tmp/qq
  11. /tmp/qq: line 1: syntax error: unexpected redirection
  12. root@IPHONE5S:~#
复制代码
回复 5# 关阴月飞

而在你给出的第一个脚本这个脚本上能运行但计算出错 http://bbs.chinaunix.net/forum.p ... mp;fromuid=29502265

改了下面加粗的就完全不能运行了。

star=`awk -F. '{printf "%.f",$1*256^3+$2*256^2+$3*256+$4}' <<<"${LINE%%-*}"`
end=`awk -F. '{printf "%.f",$1*256^3+$2*256^2+$3*256+$4}' <<<"${LINE##*-}"`







但是这个脚本在其它linux运行是正常的呀。。就OPENWRT下不行。。奇怪了去




   

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
7 [报告]
发表于 2015-06-09 19:14 |只看该作者
本帖最后由 关阴月飞 于 2015-06-09 19:16 编辑

回复 6# l3lf


   你的OPENWRT下有 /bin/bash 么?

star=`awk -F. '{printf "%.f",$1*256^3+$2*256^2+$3*256+$4}' <<<"${LINE%%-*}"`
end=`awk -F. '{printf "%.f",$1*256^3+$2*256^2+$3*256+$4}' <<<"${LINE##*-}"`

改成下面的试试:

star=`echo "${LINE%%-*}" |awk -F. '{printf "%.f",$1*256^3+$2*256^2+$3*256+$4}' `
end=`echo "${LINE##*-}"   |awk -F. '{printf "%.f",$1*256^3+$2*256^2+$3*256+$4}'`

论坛徽章:
0
8 [报告]
发表于 2015-06-10 08:26 |只看该作者
没有/bin/bash
改了能运行但计算出错
  1. root@IPHONE5S:/tmp# sh qq
  2. seq: invalid option -- f
  3. 0.0.0.192.168
  4. BusyBox v1.19.4 (2013-12-19 16:15:55 CST) multi-call binary.

  5. Usage: seq [-w] [-s SEP] [FIRST [INC]] LAST

  6. Print numbers from FIRST to LAST, in steps of INC.
  7. FIRST, INC default to 1.

  8.         -w      Pad to last with leading zeros
  9.         -s SEP  String separator

  10. root@IPHONE5S:/tmp# cat /tmp/qq
  11. #!/bin/bash


  12. #▒▒▒▒ֹIP▒▒ַתΪ▒▒▒▒▒֣▒


  13. star=`echo "${LINE%%-*}" |awk -F. '{printf "%.f",$1*256^3+$2*256^2+$3*256+$4}' `
  14. end=`echo "${LINE##*-}"   |awk -F. '{printf "%.f",$1*256^3+$2*256^2+$3*256+$4}'`


  15. #▒▒▒▒▒▒IP֮▒▒▒▒▒е▒ַ

  16. seq -f "%.f"  $star $end |awk  '{i=$0;print int(i/256^3),int(i%256^3/256^2),int(i%256^3%256^2/256),i%256^3%256^2%256}' OFS=. < /tmp/ip.txt

  17. root@IPHONE5S:/tmp# cat /tmp/ip.txt
  18. 192.168.1.2-192.168.10.5
复制代码
回复 7# 关阴月飞




   

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
9 [报告]
发表于 2015-06-10 09:31 |只看该作者
回复 8# l3lf


    seq: invalid option -- f

看看你的seq命令能不能运行成功吧

论坛徽章:
0
10 [报告]
发表于 2015-06-10 10:12 |只看该作者
回复 9# 关阴月飞

是不能运行成功,但是算出03.0.0.0.192.168这样的数字。。。1楼的脚本在ubuntu 10.04也运行错误,郁闷了。


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP