Поскольку эта часть ответа длинна:
gcloud compute disks create disk-a \
--size=10gb \
--zone=us-west1-a \
--labels=something=monday \
--project=${PROJECT}
gcloud compute disks create disk-b \
--size=10gb \
--zone=us-west1-b \
--labels=something=else \
--project=${PROJECT}
Тогда:
ID=$(gcloud compute disks list \
--filter="name~disk zone~us-west1 labels.something=else" \
--format="value(id)" \
--project=${PROJECT}) && echo ${ID}
NB
- фильтр
AND
подразумевается и опускается - вы можете удалять термины по мере необходимости
- вам следует сделать фильтр как можно более конкретным
И - когда вы уверены , поскольку удаление невозможно восстановить:
gcloud compute disks delete ${ID} --project=${PROJECT} --region=${REGION}
Если имеется несколько совпадений, вы можете выполнить итерацию:
IDS=$(gcloud compute disks list ...)
for ID in ${IDS}
do
gcloud compute disks delete ${ID}
done
Если вы предпочитаете - потрясающий jq
, у вас будет универсальный способ (не gcloud
-специфичный):
gcloud compute disks list \
--project=${PROJECT} \
--format=json \
| jq --raw-output '.[] | select(.name | contains("disk")) | select(.zone | contains("us-west1")) | select(.labels.something=="else")'
...