Исходя из вашего дальнейшего комментария к ответу Nifle , возможно, это больше похоже на то, что вы ищете. Он действует только на строки, которые содержат TEXT=
за которым следуют 4 '-' сегмента текста с разделителями.
Использование GNU sed (обработка "TEXT" и "Yahoo" как константы)
sed -re 's/^(TEXT=[^-]+)-([^-]+)-([^-]+)-(yahoo)$/\1\2\3\4/'
Или, используя GNU sed (обрабатывая весь текст после "=" как переменный)
sed -re 's/^(TEXT=[^-]+)-([^-]+)-([^-]+)-([^-]+)$/\1\2\3\4/'
Или, для переносимости posix (обрабатывая весь текст после "=" как vairable):
sed 's/^\(TEXT=[^-][^-]*\)-\([^-][^-]*\)-\([^-][^-]*\)-\([^-][^-]*\)$/\1\2\3\4/'