С регулярными выражениями *
означает предыдущий символ, любое количество раз . Чтобы сопоставить любой символ, используйте .
То, что вы действительно хотите, это .*
, что означает любой символ, любое количество раз , например:
sed 's/DATA_.*/DATA_/' filename.txt
Кроме того, я удалил ^
, что означает начало строки , так как вы хотите сопоставить «DATA_», даже если это не начало строки.