首页 > 解决方案 > 如何从空白开始“grep -E”直到遇到特定文本?

问题描述

我正在尝试从 terraform 命令中隔离特定的行输出。这是我的初始输出:

> terraform state show module.my_module.aws_cloudfront_distribution.cloudfront_resource | grep -E "id"
    hosted_zone_id                 = "..."
    id                             = "..."
    in_progress_validation_batches = 0
        target_origin_id       = "..."
        origin_id   = "..."

我想归零就行了 id = "..."。所以我想使用 grep 正则表达式“以空格开头,然后 id”作为我的测试。我尝试了以下但无济于事:

... | grep -E "^\s*id"
... | grep -E "^[:blank:]*id"

正确的方法是什么?

标签: regexgrep

解决方案


我需要添加“-no-color”标志以防止 terraform 添加颜色代码(在终端中未明确显示)。

terraform state show -no-color module.my_module.aws_cloudfront_distribution.cloudfront_resource | grep -E "^[[:blank:]]id"

推荐阅读