Скрипт 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