本文介绍了从字符串中提取版本号的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个组件和版本号的字符串:
I have a string with components and version numbers:
<$c$c>data-c(kuh-small1);divider-bin-1.4.4;divider-conf-1.3.3-w(1,16);storage-bin-1.5.4;storage-conf-1.5.0-w(1);worker-bin-4.5.1;worker-conf-4.4.1-c(kuh)-win2$c$c>
有关一个shell脚本,我需要提取二进制分频器的版本号。所以,我需要得到:
For a shell script, I need to extract the version number of the divider binary. So I need to yield:
1.4.4
什么是做到这一点的好办法?与sed的?
What would be a good way to do this? with sed?
推荐答案
的回答的,这可以工作:
grep -Po '(?<=divider-bin-)\d.\d.\d'
和更好的:
grep -Po '(?<=divider-bin-)[^;]+'
从里grep分频器斌 -
,直到它找到;
字符。这样,任何 NNN.NNN。 ...。 NNN
格式就可以了(不管有多少 NN
块)。
it greps from divider-bin-
until it find the ;
character. This way any NNN.NNN. ... . NNN
format will work (no matter how many blocks of NN
).
$ echo "data-c(kuh-small1);divider-bin-1.4.4;divider-conf-1.3.3-w(1,16);storage-bin-1.5.4;storage-conf-1.5.0-w(1);worker-bin-4.5.1;worker-conf-4.4.1-c(kuh)-win2" | grep -Po '(?<=divider-bin-)[^;]+'
1.4.4
$ echo "data-c(kuh-small1);divider-bin-1.4;divider-conf-1.3.3-w(1,16);storage-bin-1.5.4;storage-conf-1.5.0-w(1);worker-bin-4.5.1;worker-conf-4.4.1-c(kuh)-win2" | grep -Po '(?<=divider-bin-)[^;]+'
1.4
这篇关于从字符串中提取版本号的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!