コンソール上で1行から連続したn文字の組み合わせを取得する
Pocket

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

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

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

 

Pocket

Written by blacknon

インフラエンジニア(…のつもり)。 仕事で使うならクライアントはWindowsよりはUNIXの方が好き。 大体いつも眠い。

Leave a Comment

メールアドレスが公開されることはありません。

*