string-join0 - объединение строк с нулевыми байтами
Синтаксис
string join [-q | --quiet] SEP [STRING ...] string join0 [-q | --quiet] [STRING ...]
Описание
string join объединяет свои аргументы STRING в одну строку, разделяя их SEP, которое может быть пустой строкой. Код возврата: 0, если было выполнено хотя бы одно объединение, или 1 в противном случае. Если -n или --no-empty указаны, пустые строки не учитываются (например, string join -n + a b "" c будет расширяться до a+b+c, а не a+b++c).
string join0 объединяет свои аргументы STRING в одну строку, разделяя их нулевым байтом (NUL), и добавляет завершающий NUL. Это наиболее полезно при работе с инструментами, принимающими входные данные, ограниченные нулевыми байтами, такими как sort -z. Код возврата: 0, если было выполнено хотя бы одно объединение, или 1 в противном случае.
Поскольку Unix использует NUL в качестве терминатора строки, передача результата работы string join0 в качестве аргумента команде (через подстановку команды) фактически не сработает. Fish передаст правильные байты, но команда не сможет определить, где заканчивается аргумент. Это ограничение в передаче аргументов в Unix.
Примеры
>_ seq 3 | string join ... 1...2...3 # Give a list of NUL-separated filenames to du (this is a GNU extension) >_ string join0 file1 file2 file\nwith\nmultiple\nlines | du --files0-from=- # Just put the strings together without a separator >_ string join '' a b c abc
© 2022 fish-shell developers
Licensed under the GNU General Public License, version 2.
https://fishshell.com/docs/3.5/cmds/string-join0.html