免费注册 查看新帖 |

Chinaunix

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

[文本处理] 中国福利彩票自动对奖程序 [复制链接]

论坛徽章:
8
2016科比退役纪念章
日期:2018-10-24 08:24:0115-16赛季CBA联赛之北控
日期:2019-03-12 14:34:562016科比退役纪念章
日期:2019-04-01 10:33:0915-16赛季CBA联赛之山东
日期:2019-04-17 12:46:3215-16赛季CBA联赛之广夏
日期:2019-05-09 16:40:4015-16赛季CBA联赛之广夏
日期:2019-10-10 15:33:4015-16赛季CBA联赛之辽宁
日期:2019-10-15 08:37:0615-16赛季CBA联赛之北控
日期:2021-03-30 15:53:34
1 [报告]
发表于 2019-03-13 14:28 |显示全部楼层
写了个普通的方法,test.awk脚本
  1. function checkRed(A,B,i,j,n) {
  2.     for (i=1;i<=6;i++)
  3.         for (j=1;j<=6;j++){
  4.             if (A[i]==B[j]){
  5.                 n++
  6.                 break
  7.             }
  8.         }
  9.     return n
  10. }
  11. function checkBlue(a,b) {
  12.     return a==b
  13. }
  14. function getRes(a,b) {
  15.     if (a==6 && b)
  16.         return "中一等奖"
  17.     else if (a==6 && !b)
  18.         return "中二等奖"
  19.     else if (a==5 && b)
  20.         return "中三等奖"
  21.     else if ((a==5 && !b) || (a==4 && b))
  22.         return "中四等奖"
  23.     else if ((a==4 && !b) || (a==3 && b))
  24.         return "中五等奖"
  25.     else if (a<=2 && b)
  26.         return "中六等奖"
  27.     else
  28.         return "未中奖"
  29. }

  30. #取到开奖的数字
  31. BEGIN{
  32.     split(redstr,zjRed)
  33.     zjBlue=bluestr
  34. }
  35. /^[A-Z]>/{
  36.     for (i=2;i<=7;i++){
  37.         redBall[i-1]=$i
  38.     }
  39.     blueBall = $9
  40.     print $0,getRes(checkRed(redBall,zjRed),checkBlue(blueBall,zjBlue))
  41. }
复制代码

我直接测试的话正常:
  1. awk -f test.awk -v redstr="01 07 10 22 31 32" -v bluestr="15" ticket_2019009.txt
复制代码


要在你的bash脚本调用里的话,你自己看一下,在适当的位置加上,应该就可以了。
  1. awk -f test.awk -v redstr=$red -v bluestr=$blue ticket_2019009.txt
复制代码



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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP