O problema é que os caminhos contêm /
caracteres e esse caractere usado em sed
também para a separação de argumentos de substituição. A solução mais simples é simplesmente usar outro separador em sed
, um não aparece em seus dados (digamos, um |
ou, como no meu exemplo subseqüente, uma vírgula):
sed -i "s,${PWD},a Hello World," historia.txt
Edit: Acima explica o problema que você tem (as barras conflitantes). Mas eu vejo (agora) que você não está substituindo, mas adicionando uma linha após a linha correspondente. Nesse caso, você pode escapar das barras no caminho PWD
de sed
, por exemplo, por:
sed -i "/${PWD//\//\/}/a Hello World" historia.txt