Linux
使用 Bash 解析 Hadoop 版本字元串
我們有這個 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