Você não pode usar:
s/\
/
para corresponder a nova linha no espaço padrão em s/pattern/replacement/
form. Depende de implementações para interpretar esse padrão. Tanto o GNU sed quanto o BSD sed o tratam como uma nova linha, mas o BSD sed doesn aceite e eleve o erro .
Geralmente, você não pode corresponder a uma nova linha no final da linha de entrada, mas você pode usar \n
para corresponder a nova linha que aparece no espaço padrão como resultado do comando N
.
O caminho certo, POSIXLY:
sed 'a\
text += num.toString(16);
'
ou:
sed 's/$/\
text += num.toString(16);/'