Что насчет varnish_reload_vcl
?
Некоторые примеры:
Без проблем в вашем файле VCL
$ varnish_reload_vcl { {1}} Загрузка vcl из /etc/varnish/default.vcl
Имя текущей запущенной конфигурации reload_2016-01-28T15: 18: 23
Использование нового имени конфигурации reload_2016-01-28T15: 19 : 57
VCL скомпилирован.
VCL 'reload_2016-01-28T15: 19: 57' сейчас активен
доступен 0 загрузок
доступен 0 reload_2016-01-28T14: 40:04
доступно 0 reload_2016-01-28T14: 42: 07
доступно 0 reload_2016-01-28T14: 42: 32
доступно 0 reload_2016-01-28T14: 47: 45
доступно 0 reload_2016-01-28T14: 48: 45
доступно 0 reload_2016-01-28T14: 50: 26
доступно 0 reload_2016-01-28T14: 55: 55 { {1}} доступно 0 reload_2016-01-28T15: 18: 23
active 0 reload_2016-01-28T15: 19: 57
Готово
Ошибка в вашем файле VCL
$ varnish_reload_vcl
Загрузка vcl из /etc/varnish/default.vcl
Имя текущей запущенной конфигурации - reload_2016-01-28T15: 19: 57
Использование нового имени конфигурации reload_2016-01-28T15: 21: 51
Сообщение от компилятора VCC:
Символ не найден: 'b1' (ожидаемый тип BACKEND): {{1 }} ('input', строка 77, позиция 32)
установить req.backend_hint = b1;
---------------------- --------- ## -
Не удалось запустить VCC-компилятор, завершился с 2
Ошибка компиляции VCL
Команда завершилась неудачно с кодом ошибки 106
varnishadm -S / etc / varnish / secret -T 127.0.0.1:6082 Ошибка vcl.load
echo 'abc,def,12379,foo' | sed -e 's/\(.*\),/\1./' -e 's/\(.*\),/\1./'
или
echo 'abc,def,12379,foo' | sed -e 's/\(.*\),/\1./;s/\(.*\),/\1./'
Используя awk
, рассматривая ввод как набор полей, разделенных запятыми -, и соединяя три последних поля точками,
echo 'abc,def,12379,foo' |
awk 'BEGIN { OFS=FS="," } { print $1, $2 "." $3 "." $4 }'
Попробуйте это:
$ echo 'abc,def,12379,foo' | sed 's/,\([^,]*\),\([^,]*\)$/.\1.\2/'
abc,def.12379.foo
Это оставит строки с одной запятой (напримерfoo,bar
). Это может быть или не быть тем, что вы хотите.
\(...\)
группы захвата и \1
, \2
обратные ссылки в строке замены должны поддерживаться во всех версиях sed
; Я тестировал вышеописанное на Unix v7.
ПС. Даже двойной sed из вашего вопроса должен работать на MacOS; может быть, ваша проблема в том, что строки заканчиваются CarriageReturns вместо LineFeeds?