Spec-Zone.ru › Fish 3.7

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

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

См. также опцию --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-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.7/cmds/string-split.html

Spec-Zone.ru

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