Если вы хотите интерпретировать $replace
, вам не следует использовать одинарные кавычки, поскольку они предотвращают замещение переменных.
Try:.
echo $LINE | sed -e "s/12345678/\"${replace}\"/g"
если вы хотите цитаты положить в случае, если вы не хотите кавычки, используйте:
echo $LINE | sed -e "s/12345678/${replace}/g"
Стенограмма:
pax> export replace=987654321
pax> echo X123456789X | sed "s/123456789/${replace}/"
X987654321X
pax> _
Просто следите за тем, чтобы у ${replace}
нет никаких символов (например, /
), так как это может вызвать путаницу, если не сбежать. Но если, как вы говорите, вы заменяете одно число на другое, это не должно быть проблемой.
Для общего связанного вопроса об обработке значений с помощью слэшей в них см. Http://stackoverflow.com/questions/5864146/use-slashes-in-sed-replace – tripleee