Я пытаюсь выполнить замену строки в нескольких сотнях конфигурационных файлов awstats, и для этого использую sed.Однако у меня возникают проблемы при получении рабочего шаблона.
Если говорить точнее, я пытаюсь преобразовать эту строку в конфигах:
HostAliases="REGEX[^\.*example\.com$]"
в эту:
HostAliases="REGEX[\.example\.com$]"
, где example\.com
- вариант.
Я пробовал десятки вариантов команды sed.Например:
sed -i 's/^HostAliases="REGEX[^\.*/HostAliases="REGEX[\./' /etc/awstats/*.conf
sed -i 's/REGEX[^\.*/REGEX[\./' /etc/awstats/*.conf
, но каждый раз появляется сообщение об ошибке: sed: -e expression #1, char 49: unterminated 's' command
Проблема, вероятно, связана с экранированием некоторых символов, но я не могу понять, какие из нихили как избежать их.Я хочу сделать шаблон достаточно конкретным, чтобы избежать случайного совпадения с другими строками в конфигурации, поэтому было бы неплохо включить HostAliases.
Может ли какой-нибудь sed-гуру указать мне правильное направление?