bash – 从字符串中提取版本号

前端之家收集整理的这篇文章主要介绍了bash – 从字符串中提取版本号前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个包含组件和版本号的字符串:

数据-C(KUH-small1);除法器 – 滨1.4.4;除法器 – CONF-1.3.3-W(1,16);存储彬1.5.4;存储CONF-1.5.0-W( 1);工人彬4.5.1;工人CONF-4.4.1-C(KUH)-win2

对于shell脚本,我需要提取分隔符二进制文件的版本号.所以我需要屈服:

1.4.4

这样做有什么好办法?用sed?

Kent’s answers之后,这可以工作:
grep -Po '(?<=divider-bin-)\d.\d.\d'

甚至更好:

grep -Po '(?<=divider-bin-)[^;]+'

它从divider-bin中掠过 – 直到它找到;字符.这样任何NNN.NNN. …… NNN格式将起作用(无论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

猜你在找的Bash相关文章