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"'/'
-
$PWD
puede contener una barra inclinada, en cuyo caso necesita encontrar un carácter no contenido en$PWD
para usar como delimitador.
Quizá resolver ambos problemas a la vez
sed '[email protected]@'"$PWD"'@'