练习 - 使用 Bash 和 grep 筛选 CLI 输出
目前为止,你一直是在单独运行 Bash 命令。 Bash 与其他工具结合使用时功能非常强大,因此我们接下来进行一些实践,使用 Bash 筛选 Azure CLI 的输出。
假设你要查看 Azure 的 westus 区域中可用的虚拟机 (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 命令可以使 CLI 命令更易用。 由于系统管理员的工作很繁重,因此他们非常乐于使用可以减少工作量的任何工具。