- 论坛徽章:
- 15
|
本帖最后由 rdcwayx 于 2012-10-11 14:34 编辑
@tyguaike
这个是为4位数字定制的. 引入一个参数可以解决你的第一个要求- $ cat abc.sh
- number=$1
- awk -v n=4 -v number=$number '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
- }
- }'
复制代码 如果不是4为数字,代码需要大改动, |
|