string-collect - объединение строк в одну
Краткое описание
string collect [-N | --no-trim-newlines] [STRING ...]
Описание
string collect собирает свой вход в один выходной аргумент, не разбивая выход при использовании в подстановке команд. Это полезно при попытке собрать многострочный вывод другой команды в переменную. Код возврата: 0, если любой выходной аргумент не пустой, или 1 в противном случае.
Команда типа echo (cmd | string collect) в основном эквивалентна цитированной подстановке команды (echo "$(cmd)"). Основное отличие заключается в том, что первая вычисляется в ноль или один элемент, тогда как цитированная подстановка команды всегда вычисляется в один элемент из-за интерполяции строк.
Если вызывается с несколькими аргументами вместо входных данных, string collect сохраняет каждый аргумент отдельно, где количество выходных аргументов равно количеству аргументов, переданных string collect.
Любые завершающие символы новой строки во входных данных обрезаются, точно так же, как и при подстановке "$(cmd)". Используйте --no-trim-newlines, чтобы отключить это поведение, что может быть полезно при выполнении команды, такой как set contents (cat filename | string collect -N).
С помощью --allow-empty, string collect всегда выводит один (пустой) аргумент. Это можно использовать, чтобы предотвратить исчезновение аргумента.
Примеры
>_ echo "zero $(echo one\ntwo\nthree) four" zero one two three four >_ echo \"(echo one\ntwo\nthree | string collect)\" "one two three" >_ echo \"(echo one\ntwo\nthree | string collect -N)\" "one two three " >_ echo foo(true | string collect --allow-empty)bar foobar
© 2022 fish-shell developers
Licensed under the GNU General Public License, version 2.
https://fishshell.com/docs/3.4/cmds/string-collect.html