2012-07-02 2 views
2

Как заменить символы «на лету» при использовании sed? Пример:(sed beginner) заменить символы в переменной env

Хочу эта команда должна быть выполнена: /бен/СЭД 'S/HOSTNAME = */HOSTNAME = server_domain_com/г'/и т.д./sysconfig/сети

Вместо того, чтобы этот : /бен/СЭД 's/HOSTNAME = */HOSTNAME = server.domain.com/г'/и т.д./sysconfig/сети

строку "server.domain.com" содержится в окр переменную, и я хотел бы заменить точки символом подчеркивания перед заменой соответствующей строки в/etc/sysconfig/network.

Спасибо!

ответ

2

Вы можете сделать это с помощью Баш подстановки тоже:

/bin/sed -i "s/HOSTNAME=.*/HOSTNAME=${HOSTNAME//./_}/g" /etc/sysconfig/network 

// инструктирует его, чтобы изменить все вхождений (например, г в СЕПГ). Не забудьте флаг -i, чтобы фактически изменить файл, а не просто распечатать его.

6
HOSTNAME=$(echo $HOSTNAME | sed s/from/to/g) 
Смежные вопросы