string-collect - join strings into one — fish-shell 3.2.1 documentation

# string-collect - join strings into one

## Synopsis

    string collect [(-N | --no-trim-newlines)] [STRING...]

## Description

`string collect` collects its input into a single output argument, without splitting the output when used in a command substitution. This is useful when trying to collect multiline output from another command into a variable. Exit status: 0 if any output argument is non-empty, or 1 otherwise.

If invoked with multiple arguments instead of input, `string collect` preserves each argument separately, where the number of output arguments is equal to the number of arguments given to `string collect`.

Any trailing newlines on the input are trimmed, just as with `"$(cmd)"` substitution in sh. `--no-trim-newlines` can be used to disable this behavior, which may be useful when running a command such as `set contents (cat filename | string collect -N)`.

## Examples

    >_ echo \"(echo one\ntwo\nthree | string collect)\"
    "one
    two
    three"

    >_ echo \"(echo one\ntwo\nthree | string collect -N)\"
    "one
    two
    three
    "