免费注册 查看新帖 |

Chinaunix

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

[文本处理] 怎么把在SHELL下去行的代码改成.sh文件 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-10-03 14:44 |只看该作者 |倒序浏览
awk -v n=4 -v number=2475 'BEGIN{split (number,d,"");
                      for (i=1;i<=n;i++)    # 产生两位数字组合列表
                        { for (j=1;j<=n;j++)
                             if (d[i]<d[j]) a[d[i] d[j] ]
                        }
                      for (i in a)
                        { printf "****  generate the list for [ %s ] .....\n", i;
                          split(i,b,"");x=0
                          for (j=1;j<=n;j++) if (!(b[1]==j||b[2]==j)) c[++x]=j  # 产生该组合的反向组合。
                          system ("seq -w 0000 9999 |egrep \"" b[1] "|" b[2] "\"|grep -v " c[1] "|grep -v " c[2])
                          delete c
                        }
                     }'


我怎么改可以在运行sh的时候在提示我输入2475,我不一定是输入2475也可能是其它的。
还有要是我只输入3个码也可以比如247,这样的话还要改哪里。
因为第次我都要改好2475在复制到SHELL有时多花时间了

论坛徽章:
15
2015年辞旧岁徽章
日期:2015-03-03 16:54:15双鱼座
日期:2015-01-15 17:29:44午马
日期:2015-01-06 17:06:51子鼠
日期:2014-11-24 10:11:13寅虎
日期:2014-08-18 07:10:55酉鸡
日期:2014-04-02 12:24:51双子座
日期:2014-04-02 12:19:44天秤座
日期:2014-03-17 11:43:36亥猪
日期:2014-03-13 08:13:51未羊
日期:2014-03-11 12:42:03白羊座
日期:2013-11-20 10:15:18CU大牛徽章
日期:2013-04-17 11:48:45
2 [报告]
发表于 2012-10-09 10:00 |只看该作者
本帖最后由 rdcwayx 于 2012-10-11 14:34 编辑

@tyguaike
这个是为4位数字定制的. 引入一个参数可以解决你的第一个要求
  1. $ cat abc.sh
  2. number=$1
  3. awk -v n=4 -v number=$number 'BEGIN{split (number,d,"");
  4.                       for (i=1;i<=n;i++)    # 产生两位数字组合列表
  5.                         { for (j=1;j<=n;j++)
  6.                              if (d[i]<d[j]) a[d[i] d[j] ]
  7.                         }
  8.                       for (i in a)
  9.                         { printf "****  generate the list for [ %s ] .....\n", i;
  10.                           split(i,b,"");x=0
  11.                           for (j=1;j<=n;j++) if (!(b[1]==j||b[2]==j)) c[++x]=j  # 产生该组合的反向组合。
  12.                           system ("seq -w 0000 9999 |egrep \"" b[1] "|" b[2] "\"|grep -v " c[1] "|grep -v " c[2])
  13.                           delete c
  14.                         }
  15.                      }'
复制代码
如果不是4为数字,代码需要大改动,

论坛徽章:
0
3 [报告]
发表于 2012-10-09 20:47 |只看该作者
好,谢谢了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP