ふと思いつきでそんな処理を書いてたので、念のため備忘で残しておく。 以下のように、一度readで変数に突っ込んでやって、その後は文字数を元にxargsで1個づつ処理してやればいい。

echo qwerty|(read x;seq 2 $(($(echo $x|wc -c)-1))|xargs -I@ bash -c "echo $x|sed 's/./.&/@'")
$ echo qwerty|(read x;seq 2 $(($(echo $x|wc -c)-1))|xargs -I@ bash -c "echo $x|sed 's/./.&/@'")
q.werty
qw.erty
qwe.rty
qwer.ty
qwert.y

せっかくなので、@ebanさんのようにjqで解けないかなとやってみた。 苦戦はしたけど、なんとかできたので残しておく。jqコマンドでは「as $var」で変数に代入できて、かつパイプでそのまま次の処理にその内容を渡せるのでかなり短く書けるようだ。

echo qwerty|jq -Rr '. as$i|length|(range(1;.)|$i[:.]+"."+$i[.:])'