Shell
一行 shell 輸出一個單詞中的所有字母組合
我有這樣一句話:
fath
輸出單詞中的所有字母組合,例如:
f fa fat fath ft fth fh
編輯:
這是一個單行
awk
解決方案:
echo f a t h | awk '{for(i=0;i<2^NF;i++) { for(j=0;j<NF;j++) {if(and(i,(2^j))) printf "%s",$(j+1)} print ""}}'
輸出
f a fa t ft at fat h fh ah fah th fth ath fath
(此電源集實現的修改版本https://stackoverflow.com/questions/40966428/awk-power-set-implementation)
重擊:
combos () { local word=$1 local len=${#word} local first=${word:0:1} echo "$first" for ((i=1; i < len; i++ )); do for ((j=1; i+j <= len; j++ )); do echo "$first${word:i:j}" done done }
然後
$ combos fath f fa fat fath ft fth fh