先日、シーザー暗号についての@ebanさんの解法でそういうのがあったので、後からの見返し用に記述しておく。
(GNU sedでしか見てないので注意。)

sedで、行を横にn文字ずらしていき、元あった文字は行頭に戻る(ループする)ような処理をする場合、以下のようにする。

sed -E 's/^(.{n})(.*)/\2\1/'
[root@BS-PUB-CENT7-01 ~]# sed -E 's/^(.{3})(.*)/\2\1/' <(printf %s {a..z})
defghijklmnopqrstuvwxyzabc

以下、シーザー暗号のとこでも書いてるけど、整理した内容。

[test@BS-PUB-CENT7-01 ~]$ # printfでa~zまでを出力させる。
[test@BS-PUB-CENT7-01 ~]$ # ※echoでブレース展開すると間に空白が入るので、printfで出している(ここでは最後に改行が入るためのechoしている)。
[test@BS-PUB-CENT7-01 ~]$ echo $(printf %s {a..z})
abcdefghijklmnopqrstuvwxyz
[test@BS-PUB-CENT7-01 ~]$
[test@BS-PUB-CENT7-01 ~]$ # sedでアルファベットの位置を入れ替えている。「^(.{3})」で、行頭から数えて○文字(とりあえず3文字にしている)を指定している。
[test@BS-PUB-CENT7-01 ~]$ # このとき、拡張正規表現で()内でグループ指定しているものは、\1、\2で指定できるので、それの位置を入れ替えてやる。
[test@BS-PUB-CENT7-01 ~]$ echo $(printf %s {a..z}) | sed -E 's/^(.{3})(.*)/\2\1/'
defghijklmnopqrstuvwxyzabc
[test@BS-PUB-CENT7-01 ~]$ echo $(printf %s {a..z}) | sed -E 's/^(.{3})(.*)/\2/'
defghijklmnopqrstuvwxyz
[test@BS-PUB-CENT7-01 ~]$ echo $(printf %s {a..z}) | sed -E 's/^(.{3})(.*)/\1/'
abc

スペース区切りの単語をスライドする場合

ちなみに、スペースで区切られている単語の場合(普通にechoされてる場合)だとどうなるのだろう?
上を参考に、以下のようにすればスペース区切りのものならスライドさせることができた。

echo a bb ccc dddd eeeee ffffff | sed -E 's/^((\S*\s){2})(.*)/\3 \1/'
echo a bb ccc dddd eeeee ffffff | perl -pe 's/^((\S*\s){3})(.*)/\3 \1/'
[root@BS-PUB-CENT7-01 ~]# echo a bb ccc dddd eeeee ffffff | sed -E 's/^((\S*\s){2})(.*)/\3 \1/'
ccc dddd eeeee ffffffa bb
[root@BS-PUB-CENT7-01 ~]# echo a bb ccc dddd eeeee ffffff | perl -pe 's/^((\S*\s){3})(.*)/\3 \1/'
dddd eeeee ffffffa bb ccc

sed使わない場合

sedを使わない場合だと(あるのかそんなこと)どうするのか。
とりあえず、以下のようにshufで2回出力させて、それをcutで抜き出して対応してみた。

w=5;printf %s {a..z} | shuf -rz -n 2 | cut -c $w-$(( $w + 26 ))
[root@BS-PUB-CENT7-01 ~]# w=2;printf %s {a..z} | shuf -rz -n 2 | cut -c $w-$(( $w + 26 ))
bcdefghijklmnopqrstuvwxyz</span><span style="color: #ff0000;">a
[root@BS-PUB-CENT7-01 ~]# w=6;printf %s {a..z} | shuf -rz -n 2 | cut -c $w-$(( $w + 26 ))
fghijklmnopqrstuvwxyz</span><span style="color: #ff0000;">abcde
[root@BS-PUB-CENT7-01 ~]# w=9;printf %s {a..z} | shuf -rz -n 2 | cut -c $w-$(( $w + 26 ))
ijklmnopqrstuvwxyz</span><span style="color: #ff0000;">abcdefgh

…うん、やっぱsed使ったほうがいいや。
数え方もsedと違うし。