string-split0 - разделение по нулевому байту
Синопсис
string split [(-f | --fields) FIELDS] [(-m | --max) MAX] [(-n | --no-empty)] [(-q | --quiet)] [(-r | --right)] SEP [STRING...] string split0 [(-f | --fields) FIELDS] [(-m | --max) MAX] [(-n | --no-empty)] [(-q | --quiet)] [(-r | --right)] [STRING...]
Описание
string split разделяет каждую СТРОКУ на разделитель РАЗДЕЛИТЕЛЬ, который может быть пустой строкой. Если -m или --max указано, то для каждой СТРОКИ выполняется не более MAX разделений. Если -r или --right задано, разделение выполняется справа налево. Это полезно в сочетании с -m или --max. С -n или --no-empty, пустые результаты исключаются из рассмотрения (например, hello\n\nworld будет расширяться до двух строк, а не трех). Код выхода: 0, если по крайней мере одно разделение было выполнено, или 1 в противном случае.
Используйте -f или --fields для вывода определённых полей. Если не используется --allow-empty, если заданное поле не существует, то команда завершается с кодом 1 и ничего не выводит.
См. также опцию --delimiter команды read.
string split0 разделяет каждую СТРОКУ на нулевой байт (NUL). Опции такие же, как string split, за исключением того, что разделитель не задаётся.
split0 имеет важное свойство, что его вывод не разделяется при использовании в подстановке команд, что позволяет подстановке команд создавать элементы, содержащие новые строки. Это наиболее полезно при использовании с инструментами Unix, которые генерируют нулевые байты, такими как find -print0 или sort -z. См. примеры split0 ниже.
Примеры
>_ string split . example.com example com >_ string split -r -m1 / /usr/local/bin/fish /usr/local/bin fish >_ string split '' abc a b c >_ string split --allow-empty -f1,3,5 '' abc a c
Примеры с нулевым разделителем
>_ # Count files in a directory, without being confused by newlines. >_ count (find . -print0 | string split0) 42 >_ # Sort a list of elements which may contain newlines >_ set foo beta alpha\ngamma >_ set foo (string join0 $foo | sort -z | string split0) >_ string escape $foo[1] alpha\ngamma
© 2020 fish-shell developers
Licensed under the GNU General Public License, version 2.
https://fishshell.com/docs/3.2/cmds/string-split0.html