Sugiro que grep seja uma ferramenta melhor para sed quando o que você deseja fazer é ler uma linha de um arquivo com base em uma correspondência. Você está convidado a substituir o seu sed na estrutura de loop abaixo. Note que eu também usei a opção -m 1 para que o grep só se preocupe em procurar o primeiro jogo:
for file in *.html; do
text="$(grep -m 1 "thetext" "$file")"
rename "s?$text?" "$file"
done