openstack модифицирует libvirt xml configuration

sed -ne's/[[:alpha:]]//3;t' -e's//&/2p'  <in >out

... s /// убирает третье вхождение в строке любого символа в классе [[: alpha:]] . Впоследствии t проверяет, была ли эта замена успешной, и, если да, выполняет ответвления из сценария.

Поскольку sed получил указание -n ot на автоматическую печать, входные строки с тремя или более буквенными символами в этот момент эффективно удаляются из вывода, и единственные входные строки, оставшиеся second s /// оператор ubstitution - это те, которые содержат два или меньше буквенных символов.

Вторая подстановка использует пустое регулярное выражение // с левой стороны - которое для sed , (более эффективно) относится к наиболее недавно скомпилировано / regexp / - и поэтому снова может быть прочитано как s / [[: alpha:]] / ... . Этот пытается s /// заменить второе вхождение буквенного символа в строке для самого и - и, как таковой, приводит к эффективному noop и никаким фактическим изменениям в строке . Однако, если это удается, то строка также p риментируется для вывода.

В итоге - первая s /// ubstitution эффективно удаляет из вывода все входные строки, которые соответствуют трем или более буквенным символам, а вторая подстановка p указывает на то, что осталось выводить только те, которые соответствуют двум алфавитам.

... w / grep ...

grep -xE '([0-9]*[[:alpha:]]){2}' <in >out

Этот оператор работает не так, как было указано.Он выбирает из ввода только те строки, которые состоят только из букв и цифр, а из этого подмножества только те, которые соответствуют не более или менее двум алфавитам, вторая из которых должна быть последним символом. Этот оператор будет работать для получения желаемого результата примера из входных данных примера.

Тем не менее, чтобы сделать, как было сказано:

grep -xE '([^[:alpha:]]*[[:alpha:]]){2}[^[:alpha:]]*'

Этот оператор выберет строки ввода, которые соответствуют не более или менее двум буквенным символам, которые могут быть найдены в любой позиции в строке ввода и которые могут быть разделены любым числом ^ не алфавитные символы. В обоих случаях используется переключатель

grep -x . Однако любое утверждение могло бы обойтись без, если бы привязки ^ head-of-line и $ tail-of-line были (pre | ap) добавлены к регулярному выражению соответственно. Переключатель -x обозначает совпадение целой строки , поэтому регулярное выражение должно полностью описывать все совпадающие входные строки, от начала до конца.

0
16.09.2018, 23:13
1 ответ

Вы можете попытаться изменить состояние VPS на «ошибка» с помощью команды командной строки OpenStack. Это заставляет OpenStack игнорировать реальное состояние VPS в гипервизоре. Затем вы можете выполнить те же команды для обновления xml, которые вы описали :

.
  1. вирш редактировать
  2. virsh определить
  3. выключение и запуск экземпляра
1
28.01.2020, 02:42

Теги

Похожие вопросы