Se você tem o GNU grep com suporte a Expressão Regular compatível com Perl (PCRE) (habilitado com -P ), então você pode fazer da seguinte maneira:
grep -o -P 'RT.*?D' file
Queremos o PCRE porque ele tem o quantificador lento ( ? ) que podemos usar com .* em vez de .* sozinho. Este último é ganancioso e vai sugar tudo até o último D ...
$ grep -o 'RT.*D' <<< "JKIRTTHIUCDELKJUCDE"
RTTHIUCDELKJUCD
$ grep -o -P 'RT.*?D' <<< "JKIABTHIUCDELKJUCDE"
RTTHIUCD
Ah, e o sinal -o informa grep para imprimir apenas a parte correspondente de uma linha, em vez do comportamento padrão de imprimir a linha inteira.
Observação: isso foi mesclado de uma pergunta similar, agora fechada, como duplicada, que tinha uma diferença importante: a última parte do padrão era multi-caractere, em oposição ao único D aqui. O caso de um único caractere pode ser tratado sem o PCRE (veja a outra resposta aqui), mas o caso de vários caracteres requer uma funcionalidade não disponível com a sintaxe BRE ou ERE.