次の 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
しかし、これは醜い解決策です
他のエレガントなソリューションを知りたいです。
答え1
sedで
hdp-select | sed '/^hadoop-client - /!d;s///;s/-.*//;s/\.//g'
答え2
単一最適化ソリューションawk
プログラム:
hdp-select | awk -F'-' '/^hadoop-client/{ gsub(/[[:space:].]+/, "", $3); print $3; exit }'
出力:
2640
答え3
Bashでこれを簡単に実行できます。
input='2.6.4.0-91'
input=${input%-*}
input=${input//./}
echo "$input"
2640
答え4
もう1つはsed
他のものよりはるかに簡単です(2つのコマンド対3つのコマンド)。
hdp-select | sed -n 's/hadoop-client - \(.*\)-.*/\1/;s/\.//gp'