演習 - Bash と grep を使用して CLI の出力をフィルター処理する
これまでは、Bash コマンドだけを実行してきました。 Bash は他のツールと組み合わせると強力なので、Bash を使って Azure CLI からの出力をフィルター処理してみましょう。
Azure の米国西部リージョンで利用できる仮想マシン (VM) サイズの最新の一覧を確認したいものとします。 次のコマンドを使うとそれができます。
az vm list-sizes --location westus --output table
出力として、VM の種類の長い一覧が表示されます。 この一覧を関心のある VM サイズに絞り込むには、Linux のユニバーサル パターン マッチング プログラムである
grep
を使用できます。 データ サイエンスでよく使われる "DS" サイズを調べるには、次のコマンドを使います。az vm list-sizes --location westus --output table | grep DS
これにより、
az
コマンドからの出力がgrep
にパイプされ、文字列 "DS" が含まれない行は除外されます。それでもまだ多くの VM があります。 DS V2 VM が新しいシリーズであることがわかっています。 さらに複雑な正規表現を使用するように、
grep
コマンドを調整してみましょう。az vm list-sizes --location westus --output table | grep DS.*_v2
これにより、正規表現
DS.*_v2
と一致しない行が除外されます。 その式に含まれる文字のいくつかは、前のユニットで学習した "ワイルドカード" であることがわかります。 正規表現では、ワイルドカードがよく使われます。正規表現は別のモジュールのトピックですが、Bash スクリプトには便利です。
Bash を他の CLI コマンドと共に使うと、後者をより簡単に使用できるようになります。 また、システム管理者の作業には終わらないので、ワークロードが減るツールは推奨されます。