Метаклассы
, конечно:-) , Что такое метакласс в Python?
Вам необходимо использовать другой символ вместо /
, например:
sed 's?#REPLACE-WITH-PATH?'`pwd`'?'
, потому что /
появляется в pwd
] вывод.
sed 's:#REPLACE-WITH-PATH:'`pwd`':' config.ini
Проблема заключается в правильном экранировании вывода pwd
. К счастью, как и в vim, sed поддерживает использование другого символа-разделителя. В этом случае использование двоеточия вместо косой черты в качестве разделителя позволяет избежать проблемы с экранированием.
вместо того, чтобы возиться с такими кавычками, вы можете сделать это так
#!/bin/bash
p=`pwd`
# pass the variable p to awk
awk -v p="$p" '$0~p{ gsub("REPLACE-WITH-PATH",p) }1' file >temp
mv temp file
или просто bash
p=`pwd`
while read line
do
line=${line/REPLACE-WITH-PATH/$p}
echo $line
done < file > temp
mv temp file