练习 - 使用 Bash 和 grep 筛选 CLI 输出
目前为止,你一直是在单独运行 Bash 命令。 Bash 与其他工具结合使用时功能非常强大,因此我们接下来进行一些实践,使用 Bash 筛选 Azure CLI 的输出。
假设你要查看 Azure westus 区域中可用虚拟机 (VM) SKU 的最新列表。 可以通过以下命令执行此操作:
az vm list-skus --___location westus --output table
此时你应该可以看到作为输出的 VM 类型的长列表。 若要将此列表缩小到感兴趣的 VM SKU,可以使用
grep
Linux 的通用模式匹配程序。 若要查找在数据科学中使用的“DS”SKU,请使用以下命令:az vm list-skus --___location westus --output table | grep DS
这会将输出从
az
命令管道传输到grep
中,从而筛选掉缺少“DS”字符串的行。VM 的数量还是很多。 你知道 DS V2 VM 是较新的系列。 让我们调整
grep
命令,使用更为复杂的正则表达式:az vm list-skus --___location westus --output table | grep DS.*_v2
此命令筛选出与正则表达式
DS.*_v2
不匹配的行。 基于我们在前一个单元中对“通配符”的讨论,你可能认识该表达式中的一些字符。 正则表达式可以充分利用通配符。正则表达式是另一个模块的主题,但对于 Bash 脚本编写而言也派得上用场。
将 Bash 用于 CLI 命令可以使 CLI 命令更易用。 由于系统管理员的工作很繁重,因此他们非常乐于使用可以减少工作量的任何工具。