The context for this is that I'm working with the IBM Cloud CLI tool, specifically the Infrastructure Services plugin to find a specific subset of images, from which I can instantiate a Virtual Server Instrance (VSI).
Given this, I wanted to list the images in a specific region and filter by those that: -
- Run on the IBM Z Linux platform, aka s390x **AND**
- Are based upon Ubuntu **AND**
- Are available rather than deprecated
I started with this: -
ic is images
( where ic is an alias for the ibmcloud plugin )
and then filtered using a set of nested grep calls: -
ic is images | grep s390x | grep ubuntu | grep available
r134-0568bd44-e2b7-4876-bcbf-b74b244d3b66 ibm-ubuntu-18-04-1-minimal-s390x-2 available s390x ubuntu-18-04-s390x 18.04 LTS Bionic Beaver Minimal Install 2 public provider none -
r134-77d54c6d-5071-4729-ac79-a26c7404866a ibm-ubuntu-18-04-6-minimal-s390x-3 available s390x ubuntu-18-04-s390x 18.04 LTS Bionic Beaver Minimal Install 2 public provider none -
r134-622ffa9c-47e1-450f-9a02-4f0567b7139f ibm-ubuntu-20-04-2-minimal-s390x-2 available s390x ubuntu-20-04-s390x 20.04 LTS Focal Fossa Minimal Install 2 public provider none -
r134-323e4b0e-118b-4199-8d0b-745c05a75194 ibm-ubuntu-20-04-2-minimal-s390x-enclaved-2 available s390x ubuntu-20-04-s390x-enclaved 20.04 LTS Focal Fossa Minimal Install for Secure Execution 2 public provider none -
but that's not very elegant
I knew how to use the OR operator in grep e.g.
ic is images | grep "s390x\|ubuntu"
but that's not what I want; I want AND rather that OR
This helped: -
How to run grep with multiple AND patterns?
In other words, use awk rather than grep, as per this: -
ic is images | awk '/s390x/ && /ubuntu/ && /available/'
r134-0568bd44-e2b7-4876-bcbf-b74b244d3b66 ibm-ubuntu-18-04-1-minimal-s390x-2 available s390x ubuntu-18-04-s390x 18.04 LTS Bionic Beaver Minimal Install 2 public provider none -
r134-77d54c6d-5071-4729-ac79-a26c7404866a ibm-ubuntu-18-04-6-minimal-s390x-3 available s390x ubuntu-18-04-s390x 18.04 LTS Bionic Beaver Minimal Install 2 public provider none -
r134-622ffa9c-47e1-450f-9a02-4f0567b7139f ibm-ubuntu-20-04-2-minimal-s390x-2 available s390x ubuntu-20-04-s390x 20.04 LTS Focal Fossa Minimal Install 2 public provider none -
r134-323e4b0e-118b-4199-8d0b-745c05a75194 ibm-ubuntu-20-04-2-minimal-s390x-enclaved-2 available s390x ubuntu-20-04-s390x-enclaved 20.04 LTS Focal Fossa Minimal Install for Secure Execution 2 public provider none -
which is much better
No comments:
Post a Comment