Implement read --delimiter

This takes a string that is then split upon like `string split`.

Unlike $IFS, the string is used as one piece, not a set of characters.

There is still a fallback to IFS if no delimiter is given, that
behaves exactly as before.

Fixes #4156.
This commit is contained in:
Fabian Homborg
2017-07-27 15:06:01 +02:00
parent 78889cc034
commit b1866b18dc
5 changed files with 137 additions and 18 deletions

View File

@@ -91,6 +91,8 @@ Exit status: 0 if at least one replacement was performed, or 1 otherwise.
`string split` splits each STRING on the separator SEP, which can be an empty string. If `-m` or `--max` is specified, at most MAX splits are done on each STRING. If `-r` or `--right` is given, splitting is performed right-to-left. This is useful in combination with `-m` or `--max`. Exit status: 0 if at least one split was performed, or 1 otherwise.
See also `read --delimiter`.
\subsection string-sub "sub" subcommand
`string sub` prints a substring of each string argument. The start of the substring can be specified with `-s` or `--start` followed by a 1-based index value. Positive index values are relative to the start of the string and negative index values are relative to the end of the string. The default start value is 1. The length of the substring can be specified with `-l` or `--length`. If the length is not specified, the substring continues to the end of each STRING. Exit status: 0 if at least one substring operation was performed, 1 otherwise.