Изменение имени сервера в файле OpenVPN с помощью sed

У меня есть следующий файл:

proto udp resolv-retry infinite nobind #Single line of those bellow, I've added multiple for variations of it remote fi.server.com 50505 remote us-cityone.server.com 5050 remote uk-citytwo.server.com 50500 remote us-citythree.server.com 56546 remote sweden.server.com 6546546 rest of config file.. 

Позвольте мне быть более ясным, это файл conf OpenVPN. Я хочу заменить только ту линию, которая начинается с remote servername 5555имя сервера другое.

Я добавил несколько строк remote servername 5555 только для примера, потому что все они представляют варианты, которые могут возникнуть.

Я хочу сопоставить только средний столбец, fi.server.com , us-newyorkcity.server.com т. Д. И заменить его с помощью sed с другим именем.

Почему такой шаблон не работает?

 sed -i.bak 's/\w+(-|\.)\.?\w+\.?\.com/g' filename 

Я тоже пробовал это.

 sed -i.bak 's/\w+(-|\.)\.?\w+\.?\.\w+/g' filename 

Обратите внимание, что из примера us-newyorkcity.server.com только часть server.com является статической. Отдых изменяется.

Спасибо за помощь!

One Solution collect form web for “Изменение имени сервера в файле OpenVPN с помощью sed”

Предполагая переменную NEWNAME с именем, которое вы хотите вставить, вы должны иметь возможность использовать следующее:

 sed -i.bak "s|^\(remote \)\([^ ]*\)\([ ]*[0-9]*\)|\1$NEWNAME\3|" filename 
  • Как обновить даты (на 30 дней) в файлах, идущих в это конкретное место в unix?
  • Как сделать + работать в регулярных выражениях sed на FreeBSD?
  • Использование grep / sed / awk для классификации записей в файле журнала
  • Добавить строку после определенной строки в одной строке в текстовом файле
  • извлечение из строки в строку, а затем сохранение в отдельный файл
  • Sed, Awk Multiline log file, число {0-999] идентифицирует отношение
  • выходное содержание во втором случае
  • Как работать с несколькими командами sed в aix?
  • sed - соответствие по октету IP и удаление строки
  • sed - не добавляет новую строку EOF и заменяет букву не определенной
  • Удалить строку, если два шаблона найдены в одной строке
  • Linux и Unix - лучшая ОС в мире.