grep '[[:lower:]]*xyz'
Você retornaria todas as linhas nas quais esse padrão é correspondido. Mas, claro, isso não corresponde a sequências explícitas de caracteres.
Ainda assim, isso parece ser um problema que você já resolveu:
grep -f - <<\STRINGS /dev/fd/3 3<<\DATA
^ZHDEOIMOSJDJKEJLCN
^HDEOIMOSJDJKEJLCN
^DEOIMOSJDJKEJLCN
^EOIMOSJDJKEJLCN
^OIMOSJDJKEJLCN
^IMOSJDJKEJLCN
^MOSJDJKEJLCN
^OSJDJKEJLCN
^SJDJKEJLCN
^JDJKEJLCN
^DJKEJLCN
^JKEJLCN
^KEJLCN
STRINGS
SJDJKEJLCN
JDJKEJLCN
o;aidsfjoasjif
KKEJnotLCN
DATA
OUTPUT
SJDJKEJLCN
JDJKEJLCN
Se você quiser gerar programaticamente a mesma tabela de consulta ...
grep -f - <<STRINGS /dev/fd/3 3<<\DATA
$(
MATCH=ZHDEOIMOSJDJKEJLCN
until [ ${#MATCH} -lt ${MINLEN=6} ]
do printf '^%s\n' "$MATCH"
MATCH=${MATCH#?}
done
)
STRINGS
SJDJKEJLCN
JDJKEJLCN
o;aidsfjoasjif
KKEJnotLCN
DATA
OUTPUT
SJDJKEJLCN
JDJKEJLCN