mirror of
https://github.com/fish-shell/fish-shell
synced 2025-01-15 06:24:01 +00:00
97db9d5c38
This corrects what looks like wrong alignment of some synopsis lines. (I think the alignment is not a bad idea but it makes us do more manual work, maybe we can automate that in future. We still need to figure out how to translate it to HTML.) "man -l build/user_doc/man/man1/history.1" before: string match [-a | --all] [-e | --entire] [-i | --ignore-case] [-r | --regex] [-n | --index] [-q | --quiet] [-v | --invert] PATTERN [STRING…] and after: string match [-a | --all] [-e | --entire] [-i | --ignore-case] [-r | --regex] [-n | --index] [-q | --quiet] [-v | --invert] PATTERN [STRING…] Also make the lines align the same way in the RST source by carefully choosing the position of the backslash. I'm not sure why we used two backslashes per line. Use only one; this gives us no choice of where to put it so both source and man page output are aligned. Change tabs to spaces to make the alignment in the source work.
65 lines
1.9 KiB
ReStructuredText
65 lines
1.9 KiB
ReStructuredText
string-replace - replace substrings
|
|
===================================
|
|
|
|
Synopsis
|
|
--------
|
|
|
|
.. BEGIN SYNOPSIS
|
|
|
|
``string`` replace [**-a** | **--all**] [**-f** | **--filter**] [**-i** | **--ignore-case**]
|
|
\ [**-r** | **--regex**] [**-q** | **--quiet**] *PATTERN* *REPLACE* [*STRING* ...]
|
|
|
|
.. END SYNOPSIS
|
|
|
|
Description
|
|
-----------
|
|
|
|
.. BEGIN DESCRIPTION
|
|
|
|
``string replace`` is similar to ``string match`` but replaces non-overlapping matching substrings with a replacement string and prints the result. By default, PATTERN is treated as a literal substring to be matched.
|
|
|
|
If ``-r`` or ``--regex`` is given, PATTERN is interpreted as a Perl-compatible regular expression, and REPLACEMENT can contain C-style escape sequences like ``\t`` as well as references to capturing groups by number or name as ``$n`` or ``${n}``.
|
|
|
|
If you specify the ``-f`` or ``--filter`` flag then each input string is printed only if a replacement was done. This is useful where you would otherwise use this idiom: ``a_cmd | string match pattern | string replace pattern new_pattern``. You can instead just write ``a_cmd | string replace --filter pattern new_pattern``.
|
|
|
|
Exit status: 0 if at least one replacement was performed, or 1 otherwise.
|
|
|
|
.. END DESCRIPTION
|
|
|
|
Examples
|
|
--------
|
|
|
|
.. BEGIN EXAMPLES
|
|
|
|
Replace Literal Examples
|
|
^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
::
|
|
|
|
>_ 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
|
|
|
|
Replace Regex Examples
|
|
^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
::
|
|
|
|
>_ 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
|
|
|
|
.. END EXAMPLES
|