O usuário richard descreve muito bem o que há de errado com o comando sed
e também fornece o script de edição correto para executar a ação que você está tentando.
Estou dando uma abordagem alternativa que funcionará em vários casos diferentes:
O sed
command r
inserirá o conteúdo de um arquivo na posição atual no fluxo de dados.
Sua linha de comando sed
poderia ser escrita
$ sed '115r /dev/stdin' index.html <data.in
que teria o mesmo efeito que sed '115r data.in' index.html
... se os dados que você queria inserir após a linha 115 fossem armazenados no arquivo data.in
.
/dev/stdin
é um arquivo especial que contém o que é enviado pela entrada padrão.
Você também pode fazer (com shells suportando "here-strings"):
$ sed '115r /dev/stdin' index.html <<<"my string of stuff"
ou
$ sed '115r /dev/stdin' index.html <<<"$myvariableofwonder"
Isso também funciona como esperado com o piping de outros comandos, obviamente:
$ sed -n '1,10p' myfile | sed '115r /dev/stdin' index.html
Isso irá transplantar as linhas 1 a 10 de myfile
para index.html
na linha 115.