如何削减浮点版本号+linux

如何削减浮点版本号+linux

如何从以下命令中仅获取前两位数字

我的目标是获得hadoop基本版本

hdp-select | grep hadoop-client | awk '{print $NF}'
2.6.0.3-8

预期成绩:

2.6

答案1

使用小数点切割打印函数awk

awk '{printf "%.1f\n", $NF}'

答案2

与单awk

hdp-select | awk '/hadoop-client/{ printf("%.1f\n",$NF); exit }'
2.6

  • /hadoop-client/- 只考虑带有hadoop-client关键字的行

  • printf("%.1f\n",$NF)- 将版本号格式化为简单浮点数

  • exit- 立即停止处理(节省资源)

答案3

你可以使用 coreutils cut:

echo 2.6.0.3-8 | cut -d . -f 1,2

输出:

2.6

答案4

XX.YY因为您想获取基本版本号,所以当情况如下时,命令应该能够获取至少版本号2.10.0.3.3-8

下面的grep命令仅返回*.*版本的格式。

grep -Po 'hadoop-client - \K[1-9]+\.[0-9]+(?=.*)' <(hdp-select)
2.6

一个测试:

grep -Po 'hadoop-client - \K[1-9]+\.[0-9]+(?=.*)' <<<"hadoop-client - 21.61.0.3-8"                 
21.61

相关内容