I try to substract the first string before a dot
(.
) in bash.
For instance:
1.2.3 -> 1
11.4.1 -> 11
I used the following command based on the docs:
s=4.5.0
echo "${s%.*}"
But it ouptuts 4.5
instead of 4
. I don't get it.
Why is that?
You need to use %%
to remove the longest match from the end:
$ echo "${s%%.*}"
4
From the docs:
${parameter%%word}
Remove Largest Suffix Pattern. The word shall be expanded to produce a pattern. The parameter expansion shall then result in parameter, with the largest portion of the suffix matched by the pattern deleted.