bashによるソート - 5/8

bashによるソート - 5/8

A B C D E私が値と8つの場所を持っているとしましょう1 2 3 4 5 6 7 8。 2回、3回繰り返して、可能なすべての組み合わせを印刷するには?

例:

1 2 3 4 5 6 7 8
_______________
A A B B C C D E
A B B C C D D E (and so on...)
A A A B B C D E
A B B B C C D E (and so on...)

どの組み合わせがどの組み合わせであるかは重要ではありません。欠落値があってはなりません。AABBCCDD (何がE抜けたのか)

ベストアンサー1

zsh//を使用するksh93おおよその方法はbash次のとおりです。

printf '%s\n' {A..E}{A..E}{A..E}{A..E}{A..E}{A..E}{A..E}{A..E} |
  sed '/A/!d; /B/!d; /C/!d; /D/!d; /E/!d; /\(.\)\(.*\1\)\{3\}/d'

その中で、zshスタイルを使用して{A..E}から5から8の組み合わせをすべて生成し、同じ文字を含まない、含まない、または3つ以上の組み合わせを削除します。AAAAAAAAEEEEEEEEsedABCDE

文字間にスペースを挿入するには、コードに;s/./ &/2g(GNU sed)または;s/./ &/g;s/ //(any sed)を追加します。sed

おすすめ記事