博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
任意排列、组合终极Shell脚本
阅读量:6982 次
发布时间:2019-06-27

本文共 2426 字,大约阅读时间需要 8 分钟。

hot3.png

作者: 永夜

#!/bin/bash# permutation_combination.sharg0=-1number=${2}eval ary=({1..${1}})length=${#ary[@]}output(){ echo -n ${ary[${!i}]}; }prtcom(){ nsloop i 0 number+1 output ${@}; echo; }percom(){ nsloop i ${1} number${2} ${3} ${4} ${5}; }detect(){ (( ${!p} == ${!q} )) && argc=1 && break 2; }invoke(){ echo $(percom ${argu} nsloop -1) ${para} $(percom ${argu}); }permut(){ echo -n "${1} arg${i} ${2} "; (( ${#} != 0 )) && echo -n " length "; }nsloop(){ for((${1}=${2}+1; ${1}<${3}; ++${1})); do eval eval \\\$\{
{4..${#}}\}; done; }combin(){ (( ${#} != 0 )) && echo -n "${1} arg$((i+1)) arg${i} length " || echo -n "arg$((i+1)) "; }prtper(){ argc=0; nsloop p 0 number+1 nsloop q p number+1 detect ${@}; (( argc == 1 )) && return; prtcom ${@}; }case ${3} in p)para=prtper argu="-0 +1 permut" ;; c)para=prtcom argu="-1 +0 combin" ;; esac$(invoke)Invoke the script:C 4 3[root@node2 ~]# bash permutation_combination.sh 4 3 c123124134234P 4 3[root@node2 ~]# bash permutation_combination.sh 4 3 p | xargs -n 6123 124 132 134 142 143213 214 231 234 241 243312 314 321 324 341 342412 413 421 423 431 432C 8 5[root@node2 ~]# bash permutation_combination.sh 8 5 c | xargs -n 812345 12346 12347 12348 12356 12357 12358 1236712368 12378 12456 12457 12458 12467 12468 1247812567 12568 12578 12678 13456 13457 13458 1346713468 13478 13567 13568 13578 13678 14567 1456814578 14678 15678 23456 23457 23458 23467 2346823478 23567 23568 23578 23678 24567 24568 2457824678 25678 34567 34568 34578 34678 35678 45678P 5 5[root@node2 ~]# bash permutation_combination.sh 5 5 p | xargs -n 1212345 12354 12435 12453 12534 12543 13245 13254 13425 13452 13524 1354214235 14253 14325 14352 14523 14532 15234 15243 15324 15342 15423 1543221345 21354 21435 21453 21534 21543 23145 23154 23415 23451 23514 2354124135 24153 24315 24351 24513 24531 25134 25143 25314 25341 25413 2543131245 31254 31425 31452 31524 31542 32145 32154 32415 32451 32514 3254134125 34152 34215 34251 34512 34521 35124 35142 35214 35241 35412 3542141235 41253 41325 41352 41523 41532 42135 42153 42315 42351 42513 4253143125 43152 43215 43251 43512 43521 45123 45132 45213 45231 45312 4532151234 51243 51324 51342 51423 51432 52134 52143 52314 52341 52413 5243153124 53142 53214 53241 53412 53421 54123 54132 54213 54231 54312 54321

python 有 itertools 排列组合包可以使用:

python的数学函数(1)-python组合函数模块itertools

Python性能鸡汤

转载于:https://my.oschina.net/leejun2005/blog/63216

你可能感兴趣的文章
LDAP实例异常停止日志提示虚拟内存virtual memory不足
查看>>
Asp.Net MVC 3【URLs, Routing,and Areas】续
查看>>
我的Objective-C系列文章
查看>>
Linux学习之六-Yum命令的使用
查看>>
SQL 把表中字段存储的逗号隔开内容转换成列表形式
查看>>
SQL Server 中关于 @@error 的一个小误区
查看>>
Linux命令
查看>>
Redis安装及主从配置
查看>>
jvm Classload method介绍
查看>>
检查网口流量与前10名流量大IP
查看>>
Swing开发界面时的一个bug复盘
查看>>
《税的真相》—— 读后总结
查看>>
思维导图课程
查看>>
linux定时任务的设置
查看>>
连贯的学习黑树(插入节点)
查看>>
php 按条件进行计算的方法
查看>>
Android Dialog 系统样式讲解及透明背景
查看>>
013实现使用两个堆栈队列(keep it up)
查看>>
I Hate It(线段树)
查看>>
使用C++实现功能下载文件
查看>>