Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.3k 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 Reply

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...