Em vez de ler o arquivo em uma variável e inserir esse conteúdo com o comando i
(que falhará em certos casos, como a falha que contém novas linhas / eles precisariam escapar), você deve usar o comando r
para anexe o texto diretamente:
for name in $(cat /home/stuff/list); do
sed -i "27r /home/stuff/test" $name
done
Para evitar os problemas com backticks , seria melhor usar:
while read -r name; do
sed -i "27r /home/stuff/test" "$name"
done < /home/stuff/list
Ou mais simplesmente:
xargs -rd '\n' -- sed -i "27r /home/stuff/test" < /home/stuff/list