Linux

使用 Bash 解析 Hadoop 版本字元串

  • July 7, 2018

我們有這個 CLI 語法

hdp-select | grep hadoop-client
hadoop-client - 2.6.4.0-91

最終目標是以數字為例:

2640

我們擷取最後一個數字並刪除-並刪除.

所以我做了

hdp-select | grep hadoop-client | awk '{print $3}' | sed s'/-/ /g' | awk '{print $1}' | sed s'/\.//g'
2640

但這是醜陋的解決方案

我很高興知道其他優雅的解決方案

用 sed

hdp-select | sed '/^hadoop-client - /!d;s///;s/-.*//;s/\.//g'

單程序優化解決**awk**方案:

hdp-select | awk -F'-' '/^hadoop-client/{ gsub(/[[:space:].]+/, "", $3); print $3; exit }'

輸出:

2640

引用自:https://unix.stackexchange.com/questions/418631