On Wed, 2024-01-17 at 17:26 +, Richmond wrote:
> In the man page for cut it says:
>
> -b, --bytes=LIST
> select only these bytes
>
> But there is no equals sign in the actual syntax:
>
> echo hello|cut -b 2-5
> ello
>
> echo hello|cut -b=2-5
> cut: invalid byte/character position ‘=2-5’
> Try 'cut --help' for more information.
>
> Why is this?
>
The equals sign only applies to the 'long form' of the option...
$echo hello|cut --bytes=2-5
ello
This is standard behaviour for a lot of utilities.
A hyphen and single letter is the 'short form' and there is an optional
space between the letter and it's arguments.
A double hyphen and and option name has an '=' separating it from and
arguments.
For the short form, you can often (usually?) merge multiple option
letters and any argument at the end applies to the last option letter.
$echo hello|cut -zb2-5
ello$
(the 'z' option says use NUL byte for line terminator so in this case
it didn't output the newline and my '$' command prompt got printed
straight after the 'ello'.
--
Tixy