Spec-Zone.ru › Fish 3.6

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

Краткое описание

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 для вывода определённых полей. FIELDS — это строка, разделенная запятыми, с номерами и/или диапазонами полей. Каждое поле индексируется с 1 и будет выводиться на отдельных строках. Если данного поля не существует, команда завершается с кодом 1 и ничего не выводит, если не используется --allow-empty.

См. также параметр --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-4,5 '' abcd
a
c
d

Примеры с разделителями 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

© 2005-2009 Axel Liljencrantz, 2009-2023 fish-shell contributors
Licensed under the GNU General Public License, version 2.
https://fishshell.com/docs/3.6/cmds/string-split.html

Spec-Zone.ru

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