ふと、先日のシェル芸勉強会のQ7みたいな「連続したn文字の組み合わせ」を羅列させたいなと思ったので、ちょっと調べてみた。 とりあえず、以下のように記述することでn文字の組合せを出力できる。 ちなみにsedのブレース展開で件数を処理しているため、開始が2からになっている。

bash
sed -e'p;1s/^.//g;'#{2..n}|(X=$(cat);echo "$X"|grep -Eo .{$(wc -l<<<"$X")})|sort

shell
blacknon@BS-PUB-UBUNTU-01:~$ # 3文字の組み合わせ blacknon@BS-PUB-UBUNTU-01:~$ echo {A..Z}|sed 's/ //g'|sed -e'p;1s/^.//g;'#{2..3}|(X=$(cat);echo "$X"|grep -Eo .{$(wc -l<<<"$X")})|sort ABC BCD CDE DEF EFG FGH GHI HIJ IJK JKL KLM LMN MNO NOP OPQ PQR QRS RST STU TUV UVW VWX WXY XYZ blacknon@BS-PUB-UBUNTU-01:~$ # 5文字の組み合わせ blacknon@BS-PUB-UBUNTU-01:~$ echo {A..Z}|sed 's/ //g'|sed -e'p;1s/^.//g;'#{2..5}|(X=$(cat);echo "$X"|grep -Eo .{$(wc -l<<<"$X")})|sort ABCDE BCDEF CDEFG DEFGH EFGHI FGHIJ GHIJK HIJKL IJKLM JKLMN KLMNO LMNOP MNOPQ NOPQR OPQRS PQRST QRSTU RSTUV STUVW TUVWX UVWXY VWXYZ