Назад | Перейти на главную страницу

Используйте sed, чтобы выделить несколько случаев с разными именами

У меня есть доступный инвентарь, который мне нужно удалить все случаи, начинающиеся с site2-.

Например, у меня есть список, который включает группы с именами:

[site2-static-web]
site2-ansible
site2-accounts
site2-admin
site2-analytics
site2-audit
site2-botruntime
site2-campaigns
site2-config
site2-coupons
site2-edge
site2-minio
site2-permissions
site2-registry
site2-surveys
site2-websockets
site2-amc-server
site2-static-web
site2-elasticsearch
site2-logstash
site2-kibana
site2-keycloak
site2-pgsql
site2-mysql
site2-rabbitmq
site2-redis
site2-zipkin

Я попытался sed -i.bak 's/site2-*///g' mmp_default но все, что меня достало, было site2 удалены с оставленными концами.

site2-ansible
site2-accounts

Стало:

ansible
accounts

Как мне это сделать правильно?

$ sed '/ansible\|accounts/ !d ; s/site2-//' toto
ansible
accounts
$ 

поэтому я сначала выбираю совпадающие строки в словах, которые мне нужны, разделенные \ | потом только вырезал бесполезное слово site2-. Вы все еще можете добавить -i.bak при необходимости