次のコマンドで最初の2桁だけを取得する方法
私の目標はhadoopの基本バージョンを取得することです
hdp-select | grep hadoop-client | awk '{print $NF}'
2.6.0.3-8
予想される結果:
2.6
答え1
小数点切り捨ての使用印刷機能存在するawk
awk '{printf "%.1f\n", $NF}'
答え2
シングルアッ:
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