- A substituição de comandos não é executada em aspas simples, em vez disso, você terá que usar aspas duplas.
-
\e[1;30mnão é uma variável, portanto você não pode fazer${\e[1;30m}.
Tente:
sed 's:[AEIOU]:'"$(printf "\e[1;30m&\e[0m")"':i2' room.txt
Aqui, fecho a aspa simples e, em seguida, uso aspas duplas e, em seguida, reabrimo a aspas simples.