Spec-Zone.ru › Fish 3.4

string-split0 - разделение по нулевым байтам

Синопсис

string split [(-m | --max) MAX] [-n | --no-empty] [-q | --quiet]
             [-r | --right] SEP [STRING ...]
string split0 [(-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

© 2022 fish-shell developers
Licensed under the GNU General Public License, version 2.
https://fishshell.com/docs/3.4/cmds/string-split0.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API