Spec-Zone.ru › Fish 3.4

string-split - разделение строк по разделителю

Синопсис

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 разделяет каждую строку STRING по разделителю SEP, который может быть пустой строкой. Если указан параметр -m или --max, то выполняется не более MAX разделений для каждой строки STRING. Если задан параметр -r или --right, разделение выполняется справа налево. Это полезно в сочетании с -m или --max. С параметром -n или --no-empty пустые результаты исключаются (например, hello\n\nworld будет расширено до двух строк, а не трёх). Код выхода: 0, если было выполнено хотя бы одно разделение, или 1 в противном случае.

Используйте параметр -f или --fields для вывода определённых полей. Если заданное поле отсутствует, а опция --allow-empty не используется, команда завершается с кодом 1 и ничего не выводит.

См. также опцию --delimiter команды read.

string split0 разделяет каждую строку STRING по нулевому байту (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

Примеры с разделителями NUL

>_ # 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-split.html

Spec-Zone.ru

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