Además de la respuesta de Norman Ramsey, me gustaría agregar que puede usar comillas dobles para toda la cadena (lo que puede hacer que la declaración sea más legible y menos propensa a errores).
Entonces, si desea buscar 'foo' y reemplazarlo con el contenido de $BAR, puede encerrar el comando sed entre comillas dobles.
sed 's/foo/$BAR/g'
sed "s/foo/$BAR/g"
En el primero, $BAR no se expandirá correctamente mientras que en el segundo $BAR se expandirá correctamente.
Sus dos ejemplos parecen idénticos, lo que hace que los problemas sean difíciles de diagnosticar. Posibles problemas:
-
Es posible que necesite comillas dobles, como en
sed 's/xxx/'"$PWD"'/' -
$PWDpuede contener una barra inclinada, en cuyo caso necesita encontrar un carácter no contenido en$PWDpara usar como delimitador.
Quizá resolver ambos problemas a la vez
sed '[email protected]@'"$PWD"'@'