Según su comentario adicional a la respuesta de Nifle , quizás esto se parezca más a lo que está buscando. Solo actuará en líneas que contengan TEXT=
seguidos de 4 '-' segmentos de texto delimitados.
Usando GNU sed (tratando "TEXT" y "yahoo" como constante)
sed -re 's/^(TEXT=[^-]+)-([^-]+)-([^-]+)-(yahoo)$/\1\2\3\4/'
O, utilizando GNU sed (tratando todo el texto después de "=" como deseable)
sed -re 's/^(TEXT=[^-]+)-([^-]+)-([^-]+)-([^-]+)$/\1\2\3\4/'
O, para la portabilidad posix (tratando todo el texto después de "=" como deseable):
sed 's/^\(TEXT=[^-][^-]*\)-\([^-][^-]*\)-\([^-][^-]*\)-\([^-][^-]*\)$/\1\2\3\4/'