Скрипт awk v. Sed для модификации ipsec.conf

Я создаю сценарий, который я могу запустить, и он просто спросит у меня общее имя местоположения... то есть SEC-DF1, и он получит IP-адрес этого сайта из сценария. Моя проблема - взять этот IP и заменить

right=IP_ADDRESS

с

right=NEW_IP_ADDRESS

Мне нужно это, чтобы я мог вызвать скрипт, так как я буду часто менять значение right для тестирования.

Я возился с sed до тех пор, пока кто-то не упомянул awk... у этого материала такая ужасная документация, что я постоянно получаю ошибки всех типов или странные результаты в тестовом файле, с которым я связываюсь.

2 ответа

Решение

Поскольку это прямая замена, я бы просто использовал sed:

sed -e 's/^right=[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/right=192.168.1.92/' filename

Это будет соответствовать right= в начале строки следует IP-адрес и замените его IP-адресом по вашему выбору.

Эта команда изменит ваш скрипт:

NEW_IP_ADDRESS=101.102.103.104 sed -i "s/^(right=).*$/\\1$NEW_IP_ADDRESS/" script
Другие вопросы по тегам