Chinaunix

标题: 如何快速循环? [打印本页]

作者: cfzxwxb    时间: 2014-06-24 09:46
标题: 如何快速循环?
文件内容如下:

ABC|BC|C|AC|AB|AC|
如何快速高效的拆分,排列成如下格式?

CCCCBC
BCCCBC
ACCCBC
CBCCBC
BBCCBC
ABCCBC
CCCABC
BCCABC
ACCABC
CBCABC
BBCABC
ABCABC
CCCCAC
BCCCAC
ACCCAC
CBCCAC
BBCCAC
ABCCAC
CCCAAC
BCCAAC
ACCAAC
CBCAAC
BBCAAC
ABCAAC
CCCCBA
BCCCBA
ACCCBA
CBCCBA
BBCCBA
ABCCBA
CCCABA
BCCABA
ACCABA
CBCABA
BBCABA
ABCABA
CCCCAA
BCCCAA
ACCCAA
CBCCAA
BBCCAA
ABCCAA
CCCAAA
BCCAAA
ACCAAA
CBCAAA
BBCAAA
ABCAAA

作者: dn833    时间: 2014-06-24 09:47
求楼下大仙解释
作者: yestreenstars    时间: 2014-06-24 09:52
求楼下大仙解释
作者: 关阴月飞    时间: 2014-06-24 09:55
本帖最后由 关阴月飞 于 2014-06-24 10:28 编辑

目测中........
已懂 !!!!
解答中......
没考虑顺序:
  1. [root@ awktest]# eval echo  $(awk -F '' 'NF>1{printf "{";for(i=0;i++<(NF);)printf i==NF?$i"}":$i",";next}{printf $0}' RS=\| <<<"ABC|BC|C|AC|AB|AC|") |xargs -n1
  2. ABCAAA
  3. ABCAAC
  4. ABCABA
  5. ABCABC
  6. ABCCAA
  7. ABCCAC
  8. ABCCBA
  9. ABCCBC
  10. ACCAAA
  11. ACCAAC
  12. ACCABA
  13. ACCABC
  14. ACCCAA
  15. ACCCAC
  16. ACCCBA
  17. ACCCBC
  18. BBCAAA
  19. BBCAAC
  20. BBCABA
  21. BBCABC
  22. BBCCAA
  23. BBCCAC
  24. BBCCBA
  25. BBCCBC
  26. BCCAAA
  27. BCCAAC
  28. BCCABA
  29. BCCABC
  30. BCCCAA
  31. BCCCAC
  32. BCCCBA
  33. BCCCBC
  34. CBCAAA
  35. CBCAAC
  36. CBCABA
  37. CBCABC
  38. CBCCAA
  39. CBCCAC
  40. CBCCBA
  41. CBCCBC
  42. CCCAAA
  43. CCCAAC
  44. CCCABA
  45. CCCABC
  46. CCCCAA
  47. CCCCAC
  48. CCCCBA
  49. CCCCBC
复制代码

作者: expert1    时间: 2014-06-24 09:59


小手一抖,2分到手,今晚赌资又有了。

此外,那么多学生物信息的,怎么编程都不会呢?
作者: q1208c    时间: 2014-06-24 10:11
回复 4# 关阴月飞

我怎么觉得跟昨天那个差不多呢.
   
作者: 关阴月飞    时间: 2014-06-24 10:13
回复 6# q1208c


    就是一样的呀,排队组合
作者: yestreenstars    时间: 2014-06-24 10:16
回复 7# 关阴月飞
排队组合,学习了~{:2_172:}

   
作者: q1208c    时间: 2014-06-24 10:17
回复 7# 关阴月飞


      小手一抖, 有分到手.
作者: jason680    时间: 2014-06-24 10:29
回复 1# cfzxwxb

$ echo {C,B,A}{C,B}C{C,A}{B,A}{C,A} | tr ' ' '\n'
   
作者: cfzxwxb    时间: 2014-06-24 10:45
大仙永远都在10楼!
作者: send_linux    时间: 2014-06-24 10:48
expert1 发表于 2014-06-24 09:59
小手一抖,2分到手,今晚赌资又有了。

此外,那么多学生物信息的,怎么编 ...


学生物信息的,要看是什么方面为主啊,

有的是生物为主的,有的计算机出生的,还有数学出生的啊,还有物理的也有的


作者: seesea2517    时间: 2014-06-24 11:18
这就是什么密啶的那东西嘛?或是叫什么碱基对?求科普啊
作者: shou55    时间: 2014-06-24 11:28
确实和昨天的一个帖子方法一样
作者: cfzxwxb    时间: 2014-06-24 18:50
10楼牛人,如果这样,怎么写?
ABC|BC|C|C|C|B|A|AC|AB|AC|
作者: 关阴月飞    时间: 2014-06-24 19:35
回复 15# cfzxwxb

把落单的分散开来,打一枪换一个地方:
ABC|BC|C|C|C|B|A|AC|AB|AC|
===>
echo {ABC}C{BC}C{AC}C{AB}B{AC}A
作者: cfzxwxb    时间: 2014-06-24 20:24
10楼的才是真老大,15楼的要向10楼学习!

10楼老大,我真的服了你了,我9分多钟的活,让你21秒就给我完成了,我对你真的佩服的五体投地啊!
高,实在是高!!!!!
作者: cfzxwxb    时间: 2014-06-25 13:37
哪位高手还有比10楼更高效的??帮助一下!展示一下!
作者: cfzxwxb    时间: 2014-06-25 13:39
a="{A,B,C}C{B,C}A{A,B,C}"
echo $a
运行结果如下:
{A,B,C}C{B,C}A{A,B,C}
为什么?怎么不是循环数据?
作者: jason680    时间: 2014-06-25 13:49
回复 19# cfzxwxb

$ A=`echo {A,B}{X,Y}`

$ echo $A
AX AY BX BY

   
作者: 用户名注册后不能更改    时间: 2014-06-25 14:05
回复 19# cfzxwxb
  1. 921 13:59:41 root@localhost:/dev/shm # a={A,B}{X,Y}
  2. 922 13:59:50 root@localhost:/dev/shm # echo $a
  3. {A,B}{X,Y}
  4. 923 13:59:53 root@localhost:/dev/shm # eval !!
  5. eval echo $a
  6. AX AY BX BY
  7. 924 13:59:58 root@localhost:/dev/shm #
复制代码

作者: expert1    时间: 2014-06-25 14:09

作者: pitonas    时间: 2014-06-25 15:06
{:2_172:}向10楼学习!
作者: jgrlj322    时间: 2014-06-25 17:43
大拇指,刚看了一下,确实不一样。赞回复 10# jason680


   
作者: Vsky_man    时间: 2014-06-25 18:17
10楼的顺序和给定的不一样啊
作者: cfzxwxb    时间: 2014-06-25 23:12
看了一下,还没有更高的高手出现,那现在确定10楼大侠jason680是这个帖子里的最高手了!!
作者: yinyuemi    时间: 2014-06-26 09:48
回复 1# cfzxwxb
  1. BEGIN{
  2. str="ABC|BC|C|AC|AB|AC|"
  3. L=split(str,a,"|");
  4. spl(a[1],1,c,1)
  5. }

  6. function spl(s,n,m,y){
  7. if(n==L){print m;}
  8. else{
  9. k=m;
  10. for(j=1;j<=split(s,t,"");j++){
  11. y=j;
  12. spl(a[n+1],n+1,m t[j],y);
  13. j=y;
  14. }
  15. m=k
  16. }
  17. }

  18. awk -f f.awk
  19. ABCAAA
  20. ABCAAC
  21. ABCABA
  22. ABCABC
  23. ABCCAA
  24. ABCCAC
  25. ABCCBA
  26. ABCCBC
  27. ACCAAA
  28. ACCAAC
  29. ACCABA
  30. ACCABC
  31. ACCCAA
  32. ACCCAC
  33. ACCCBA
  34. ACCCBC
  35. BBCAAA
  36. BBCAAC
  37. BBCABA
  38. BBCABC
  39. BBCCAA
  40. BBCCAC
  41. BBCCBA
  42. BBCCBC
  43. BCCAAA
  44. BCCAAC
  45. BCCABA
  46. BCCABC
  47. BCCCAA
  48. BCCCAC
  49. BCCCBA
  50. BCCCBC
  51. CBCAAA
  52. CBCAAC
  53. CBCABA
  54. CBCABC
  55. CBCCAA
  56. CBCCAC
  57. CBCCBA
  58. CBCCBC
  59. CCCAAA
  60. CCCAAC
  61. CCCABA
  62. CCCABC
  63. CCCCAA
  64. CCCCAC
  65. CCCCBA
  66. CCCCBC
复制代码

作者: cfzxwxb    时间: 2024-03-19 13:06
论坛需要加3个好友才能发帖子。终于可以发帖子了。感谢10楼大虾。其他楼层或许更厉害,没有测试,觉得10楼就很快了。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2