From man awk
:
Awk scans each input file for lines that match any of a set of patterns …
Parsing semver
Given version:
version=1.2.3
Major version
To get the major version:
echo $version | awk -F '.' '{print $1}'
1
Here, the input field separator is the period and we’re returning the 1st field.
A more concise way to write this is:
awk -F. '{print $1}' <<< $version
1
Minor version
To get the minor version:
awk -F. '{print $2}' <<< $version
2
Patch version
And to get the patch version:
awk -F. '{print $3}' <<< $version
3
Pre-release version
What about the pre-release version?
version=1.2.3-alpha.4
Instead of using the period as the field separator, we can use the hyphen:
awk -F- '{print $NF}' <<< $version
alpha.4
Here, $NF
refers to the total number of fields (which is 2 in this case).