Ba7a7chy
Ba7a7chy

Reputation: 1521

Get only part of uname -r in bash

I need to get only first two numbers of "uname -r" command in bash

example of regular out put:

uname -r
3.5.0-18-generic

what I expect using magic bash options:

3.5

Upvotes: 2

Views: 2655

Answers (3)

Thor
Thor

Reputation: 47189

You could also accomplish this with parameter expansion:

$ r="$(uname -r)"
$ echo ${r%.*}
3.5

${VAR%pat} non-greedily removes pat from the end of VAR. Note that pat is a glob pattern i.e. dot just means "dot" and star means "any-number-of-chars".

Upvotes: 2

Yefim Dinitz
Yefim Dinitz

Reputation: 424

assuming you want everything before the second dot, this will do what you want:

uname -r | cut -d. -f1-2

uname itself does not support cutting the output, afaik. The pipe through cut will show you fields 1 and 2 (-f1-2), delimited by dots (-d.)

Upvotes: 6

dimir
dimir

Reputation: 793

uname -r | sed 's/\([0-9]\+\.[0-9]\+\)\..*/\1/'

Upvotes: 3

Related Questions