string-replace - замена подстрок
Краткое описание
string replace [-a | --all] [-f | --filter] [-i | --ignore-case]
[-r | --regex] [-q | --quiet] PATTERN REPLACEMENT [STRING ...]
Описание
string replace аналогично string match, но заменяет неперекрывающиеся совпадающие подстроки строкой замены и выводит результат. По умолчанию, PATTERN рассматривается как подстрока для соответствия.
Если указан -r или --regex, PATTERN интерпретируется как регулярное выражение, совместимое с Perl, а REPLACEMENT может содержать C-стилевые escape-последовательности, такие как t, а также ссылки на группы захвата по номеру или имени в виде $n или ${n}.
Если вы укажете флаг -f или --filter, то каждая входная строка будет выведена только в том случае, если была выполнена замена. Это полезно, когда вы иначе использовали бы такой фрагмент кода: a_cmd | string match pattern | string replace pattern new_pattern. Вы можете вместо этого написать a_cmd | string replace --filter pattern new_pattern.
Код завершения: 0, если была выполнена хотя бы одна замена, или 1 в противном случае.
Примеры
Примеры замены подстрок
>_ string replace is was 'blue is my favorite' blue was my favorite >_ string replace 3rd last 1st 2nd 3rd 1st 2nd last >_ string replace -a ' ' _ 'spaces to underscores' spaces_to_underscores
Примеры замены регулярными выражениями
>_ string replace -r -a '[^\d.]+' ' ' '0 one two 3.14 four 5x' 0 3.14 5 >_ string replace -r '(\w+)\s+(\w+)' '$2 $1 $$' 'left right' right left $ >_ string replace -r '\s*newline\s*' '\n' 'put a newline here' put a here
© 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-replace.html