gcloud beta topic filters Stay organized with collections Save and categorize content based on your preferences.
- NAME
- gcloud beta topic filters - resource filters supplementary help
- DESCRIPTION
(BETA)Mostgcloudcommands return a list of resources on success. By default they arepretty-printed on the standard output. The--format=NAME[ATTRIBUTES](PROJECTION)and--filter=EXPRESSIONflags along withprojections can be used to format and change the default output to a moremeaningful result.Use the
--formatflag to change the default output format of acommand. For details run $gcloudtopic formats.Use the
--filterflag to select resources to be listed. Resourcefilters are described in detail below.Use resource-keys to reach resource items through a unique path of names fromthe root. For details run $gcloud topic resource-keys.
Use projections to list a subset of resource keys in a resource. For details run$gcloud topicprojections.
Note: To refer to a list of fields you can sort, filter, and format by for eachresource, you can run a list command with the format set to
textorjson. For example, $gcloud compute instanceslist --limit=1 --format=text.To work through an interactive tutorial about using the filter and format flagsinstead, see:https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/GoogleCloudPlatform/cloud-shell-tutorials&page=editor&tutorial=cloudsdk/tutorial.mdNote: Depending on the specific server API, filtering may be done entirely bythe client, entirely by the server, or by a combination of both.
- Filter Expressions
- A filter expression is a Boolean function that selects the resources to printfrom a list of resources. Expressions are composed of terms connected by logicoperators.
LogicOperator- Logic operators must be in uppercase:
AND,OR,NOT. Additionally, expressions containing bothANDandORmust be parenthesized to disambiguate precedence.NOTterm-1- True if
term-1is False, otherwise False. term-1ANDterm-2- True if both
term-1andterm-2are true. term-1ORterm-2- True if at least one of
term-1orterm-2is true. term-1term-2- Term conjunction (implicit
AND) is True if bothterm-1andterm-2are true.Conjunction has lower precedence thanOR.
Terms- A term is a
keyoperatorvaluetuple, wherekeyis adotted name that evaluates to the value of a resource attribute, andvaluemay be:number- integer or floating point numeric constant
unquoted literal- character sequence terminated by space, ( or )
quoted literal"…"or'…'Most filter expressions need to be quoted in shell commands. If you use
'…'shell quotes then use"…"filter string literal quotes and vice versa.
Operator Termskey:simple-pattern:operator evaluation is changing for consistency across GoogleAPIs. The current default is deprecated and will be dropped shortly. A warningwill be displayed when a --filter expression would return different matchesusing both the deprecated and new implementations.The current deprecated default is True if
keycontainssimple-pattern. The match is case insensitive. It allowsone*that matches any sequence of 0 or more characters. If*is specified then the match is anchored, meaning all charactersfrom the beginning and end of the value must match.The new implementation is True if
simple-patternmatchesanywordinkey. Words arelocale specific but typically consist of alpha-numeric characters. Non-wordcharacters that do not appear insimple-patternareignored. The matching is anchored and case insensitive. An optional trailing*does a word prefix match.Use
key:*to test ifkeyis defined and-key:*to test ifkeyis undefined.key:(simple-pattern…)- True if
keymatches anysimple-patternin the (space, tab, newline, comma)separated list. key=value- True if
keyis equal tovalue,or [deprecated] equivalent to:with the exception that thetrailing*prefix match is not supported.For historical reasons, this operation currently behaves differently fordifferent Google APIs. For many APIs, this is True if key is equal to value. Fora few APIs, this is currently equivalent to
:, with the exceptionthat the trailing*prefix match is not supported. However, thisbehaviour is being phased out, and use of=for those APIs isdeprecated; for those APIs, if you want matching, you should use:instead of=, and if you want to test for equality, you can usekey<=valueANDkey>=value. key=(value…)- True if
keyis equal to anyvaluein the (space, tab, newline,,)separated list. key!=value- True if
keyis notvalue.Equivalent to -key=valueand NOTkey=value. key<value- True if
keyis less thanvalue.If bothkeyandvaluearenumeric then numeric comparison is used, otherwise lexicographic stringcomparison is used. key<=value- True if
keyis less than or equal tovalue. If bothkeyandvalueare numeric then numeric comparison is used,otherwise lexicographic string comparison is used. key>=value- True if
keyis greater than or equal tovalue. If bothkeyandvalueare numeric then numeric comparison is used,otherwise lexicographic string comparison is used. key>value- True if
keyis greater thanvalue. If bothkeyandvalueare numeric then numeric comparison is used,otherwise lexicographic string comparison is used. key~value- True if
keycontains a match for the RE (regularexpression) patternvalue. Depending on your shell, youmight have to escape or quote~to ensure it isn'tconsumed as HOME. key!~value- True if
keydoes not contain a match for the RE (regularexpression) patternvalue. Depending on your shell, youmight have to escape or quote~to ensure it isn'tconsumed as HOME.
- Determine which fields are available for filtering
- In order to build filters, it is often helpful to review some representativefields returned from commands. One simple way to do this is to add
--format=yaml --limit=1to a command. With these flags, a singlerecord is returned and its full contents are displayed as a YAML document. Forexample, a list of project fields could be generated by running:gcloudprojectslist--format=yaml--limit=1This might display the following data:
createTime:'2021-02-10T19:19:49.242Z'lifecycleState:ACTIVEname:MyProjectparent:id:'123'type:folderprojectId:my-projectprojectNumber:'456'
Using this data, one way of filtering projects is by their parent's ID byspecifying
as theparent.idkey. - Filter on a custom or nested list in response
- By default the filter expression operates on root level resources. In order tofilter on a nested list(not at the root level of the json) , one can use the
--flattenflag to provide a theresource-keyto list.For example, To list members undermy-projectthat have an editorrole, one can run:gcloudprojectsget-iam-policycloudsdktest--flatten=bindings--filter=bindings.role:roles/editor--format='value(bindings.members)' - EXAMPLES
- List all Google Compute Engine instance resources:
gcloudcomputeinstanceslistList Compute Engine instance resources that have machineType
f1-micro:gcloudcomputeinstanceslist--filter="machineType:f1-micro"List Compute Engine instance resources using a regular expression for zone
usand not MachineTypef1-micro:gcloudcomputeinstanceslist--filter="zone ~ us AND -machineType:f1-micro"List Compute Engine instance resources with tag
my-tag:gcloudcomputeinstanceslist--filter="tags.items=my-tag"List Compute Engine instance resources with tag
my-tagormy-other-tag:gcloudcomputeinstanceslist--filter="tags.items=(my-tag,my-other-tag)"List Compute Engine instance resources with tag
my-tagandmy-other-tag:gcloudcomputeinstanceslist--filter="tags.items=my-tag AND tags.items=my-other-tag"List Compute Engine instance resources which either have tag
my-tagbut notmy-other-tagor have tagalternative-tag:gcloudcomputeinstanceslist--filter="(tags.items=my-tag AND -tags.items=my-other-tag) OR tags.items=alternative-tag"List Compute Engine instance resources which contain the key
fingerprintin themetadataobject:gcloudcomputeinstanceslist--limit=1--filter="metadata.list(show="keys"):fingerprint"List Compute Engine instance resources with label
my-labelwith anyvalue:gcloudcomputeinstanceslist--filter="labels.my-label:*"List Container Registry images that have a tag with the value '30e5504145':
gcloudcontainerimageslist-tags--filter="'tags:30e5504145'"The last example encloses the filter expression in single quotes because thevalue '30e5504145' could be interpreted as a number in scientific notation.
List in JSON format those projects where the labels match specific values (e.g.label.env is 'test' and label.version is alpha):
gcloudprojectslist--format="json"--filter="labels.env=test AND labels.version=alpha"List projects that were created on and after a specific date:
gcloudprojectslist--format="table(projectNumber,projectId,createTime)"--filter="createTime>=2018-01-15"List projects that were created on and after a specific date and time and sortfrom oldest to newest (with dates and times listed according to the localtimezone):
gcloudprojectslist--format="table(projectNumber,projectId,createTime.date(tz=LOCAL))"--filter="createTime>=2018-01-15T12:00:00"--sort-by=createTimeList projects that were created within the last two weeks, using ISO8601durations:
gcloudprojectslist--format="table(projectNumber,projectId,createTime)"--filter="createTime>-P2W"For more about ISO8601 durations, see:https://en.wikipedia.org/wiki/ISO_8601
The table below shows examples of pattern matching if used with the
:operator:PATTERN VALUE MATCHES DEPRECATED_MATCHES abc* abcpdqxyz True True abc abcpdqxyz False True pdq* abcpdqxyz False False pdq abcpdqxyz False True xyz* abcpdqxyz False False xyz abcpdqxyz False True * abcpdqxyz True True * (None) False False * ('') False False * (otherwise) True True abc* abc.pdq.xyz True True abc abc.pdq.xyz True True abc.pdq abc.pdq.xyz True True pdq* abc.pdq.xyz True False pdq abc.pdq.xyz True True pdq.xyz abc.pdq.xyz True True xyz* abc.pdq.xyz True False xyz abc.pdq.xyz True True - NOTES
- This command is currently in beta and might change without notice. Thesevariants are also available:
gcloudtopicfiltersgcloudalphatopicfilters
Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-07-22 UTC.