YQ(1)

NAME
yq - portable command-line YAML, JSON, XML, CSV, TOML, HCL and properties processor

DESCRIPTION
yq is a portable command-line data file processor (https://github.com/mikefarah/yq/) See https://mikefarah.gitbook.io/yq/ for detailed documentation and examples.

  Usage:

    yq [flags] yq [command]

EXAMPLES
# yq tries to auto-detect the file format based off the extension, and defaults to YAML if it's unknown (or piping through STDIN) # Use the '-p/--input-format' flag to specify a format type. cat file.xml | yq -p xml

# read the "stuff" node from "myfile.yml" yq '.stuff' < myfile.yml

# update myfile.yml in place yq -i '.stuff = "foo"' myfile.yml

# print contents of sample.json as idiomatic YAML yq -P -oy sample.json

  Available Commands:

completion
    Generate the autocompletion script for the specified shell

eval
    (default) Apply the expression to each document in each yaml file in sequence

eval-all
    Loads _all_ yaml documents of _all_ yaml files and runs expression once

help
    Help about any command

  Flags:

-C, --colors
    force print with colors

--csv-auto-parse
    parse CSV YAML/JSON values (default true)

--csv-separator char
    CSV Separator character (default ,)

--debug-node-info
    debug node info

-e, --exit-status
    set exit status if there are no matches or null or false is returned

--expression string
    forcibly set the expression argument. Useful when yq argument detection thinks your expression is a file.

--from-file string
    Load expression from specified file.

-f, --front-matter string
    (extract|process) first input as yaml front-matter. Extract will pull out the yaml content, process will run the expression against the yaml content, leaving the remaining data intact

--header-preprocess
    Slurp any header comments and separators before processing expression. (default true)

-h, --help
    help for yq

-I, --indent int
    sets indent level for output (default 2)

--ini-preserve-quotes
    preserve surrounding quotes on INI values during round-trip

-i, --inplace
    update the file in place of first file given.

-p, --input-format string
    [auto|a|yaml|y|kyaml|ky|json|j|props|p|csv|c|tsv|t|xml|x|base64|uri|toml|hcl|h|lua|l|ini|i] parse format for input. (default "auto")

--lua-globals
    output keys as top-level global variables

--lua-prefix string
    prefix (default "return ")

--lua-suffix string
    suffix (default ";\n")

--lua-unquoted
    output unquoted string keys (e.g. {foo="bar"})

-M, --no-colors
    force print with no colors

-N, --no-doc
    Don't print document separators (---)

-0, --nul-output
    Use NUL char to separate values. If unwrap scalar is also set, fail if unwrapped scalar contains NUL char.

-n, --null-input
    Don't read input, simply evaluate the expression given. Useful for creating docs from scratch.

-o, --output-format string
    [auto|a|yaml|y|kyaml|ky|json|j|props|p|csv|c|tsv|t|xml|x|base64|uri|toml|hcl|h|shell|s|lua|l|ini|i] output format type. (default "auto")

-P, --prettyPrint
    pretty print, shorthand for '... style = ""'

--properties-array-brackets
    use [x] in array paths (e.g. for SpringBoot)

--properties-separator string
    separator to use between keys and values (default " = ")

--security-disable-env-ops
    Disable env related operations.

--security-disable-file-ops
    Disable file related operations (e.g. load)

--security-enable-system-operator
    Enable system operator to allow execution of external commands.

--shell-key-separator string
    separator for shell variable key paths (default "_")

-s, --split-exp string
    print each result (or doc) into a file named (exp). [exp] argument must return a string. You can use $index in the expression as the result counter. The necessary directories will be created.

--split-exp-file string
    Use a file to specify the split-exp expression.

--string-interpolation
    Toggles strings interpolation of \(exp) (default true)

--tsv-auto-parse
    parse TSV YAML/JSON values (default true)

-r, --unwrapScalar
    unwrap scalar, print the value with no quotes, colours or comments. Defaults to true for yaml (default true)

-v, --verbose
    verbose mode

-V, --version
    Print version information and quit

--xml-attribute-prefix string
    prefix for xml attributes (default "+@")

--xml-content-name string
    name for xml content (if no attribute name is present). (default "+content")

--xml-directive-name string
    name for xml directives (e.g. <!DOCTYPE thing cat>) (default "+directive")

--xml-keep-namespace
    enables keeping namespace after parsing attributes (default true)

--xml-proc-inst-prefix string
    prefix for xml processing instructions (e.g. <?xml version="1"?>) (default "+p_")

--xml-raw-token
    enables using RawToken method instead Token. Commonly disables namespace translations. See https://pkg.go.dev/encoding/xml#Decoder.RawToken for details. (default true)

--xml-skip-directives
    skip over directives (e.g. <!DOCTYPE thing cat>)

--xml-skip-proc-inst
    skip over process instructions (e.g. <?xml version="1"?>)

--xml-strict-mode
    enables strict parsing of XML. See https://pkg.go.dev/encoding/xml for more details.

-c, --yaml-compact-seq-indent
    Use compact sequence indentation where '- ' is considered part of the indentation.

--yaml-fix-merge-anchor-to-spec
    Fix merge anchor to match YAML spec. Will default to true in late 2025

Use "yq [command] --help" for more information about a command.

SEE ALSO
The full documentation for yq is maintained as a Texinfo manual. If the info and yq programs are properly installed at your site, the command

    info yq

should give you access to the complete manual.