Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.2k views
in Technique[技术] by (71.8m points)

how to parse a string in Shell script

I want to parse the following string in shell script.

VERSION=2.6.32.54-0.11.def

Here I want to get two value.

first = 263254
second = 11

I am using following to get the first value:

first=`expr substr $VERSION 1 9| sed "s/.//g" |sed "s/-//g"`

to get the second:

second=`expr substr $VERSION 10 6| sed "s/.//g" |sed "s/-//g"`

Using above code the output is:

first=263254
second=11

The result wont be consistent if version is changed to:

VERSION=2.6.32.54-0.1.def

Here second value will become 1d, but I want it give output of 1 only.

How can I directly parse the number after '-' and before '.d'?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)
$ first=$(echo $VERSION | cut -d- -f1 | sed 's/.//g')
$ second=$(echo $VERSION | cut -d- -f2 | cut -d. -f2)

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share

2.1m questions

2.1m answers

63 comments

56.6k users

...