O comando s
em sed
é uma correspondência e substituição. No seu caso, .*>\(.*\)<
é o padrão a ser correspondido e é o modelo para substituí-lo por.
Quando você tenta encontrar uma correspondência para .*>\(.*\)<
no início de abc>asf<tfg
, o resultado é abc>asf<
. Esta parte da string é então substituída por asf
. tfg
não foi correspondido, então nada acontece com ele.
Usar .*>\(.*\)<.*
como seu padrão de correspondência deve gerar os resultados desejados.