bash - 遍历 awk 中的匹配值
问题描述
我正在尝试使用 bash 解析输入文件并将值从 'variable' 提取到 '}' ,但是我不确定如何遍历每个匹配的值并生成预期的输出。任何帮助表示赞赏。
测试.sh:
#!/usr/bin/env bash
file="./test.tf"
output="$(awk '/variable/,/}/' $file)"
echo "$output
测试.tf:
variable "policy_name1" {
description = "abc xyz"
type = string
default = [
test1,
test2,
]
}
variable "policy_name2" {
description = "aaa xyz"
type = bool
default = false
}
预期输出:
"policyname1","abc xyz","test1,test2"
"policy_name2","aaa xyz","false"
解决方案
Terraform 输入文件遵循 HCL 配置语言形式(参见https://github.com/hashicorp/hcl/blob/hcl2/hclsyntax/spec.md)。
该语言支持块、条件等。使用面向行的 awk 脚本无法正确解析这些文件。通过使用“terraform show -json”输出,您可能会获得更多里程。或者,尝试使用 设置环境变量TF_LOG
,export TF_LOG=trace
并查看输出
推荐阅读
- signals - 如何通过python计算信号的instfreq?
- javascript - 未捕获的 CKEditorError:角度 11 中的 ckeditor-duplicated-modules
- microsoft-teams - 无法从团队中的 get authtoken 方法获取令牌返回错误“清单中定义的应用程序资源和 iframe 来源不匹配”
- php - Laravel 属于多由两个中间表?
- python - 创建一个 LSTM 网络来训练和预测多个时间序列
- mongodb - MongoDB 聚合查询将状态分组到区域中
- unit-testing - 如何使用 CodeceptJS 对 JS 函数进行单元测试
- linux - 赛普拉斯强制远程下载
- python - 无法在 VS Code 中更改 Jupyter 内核
- javascript - 嵌套 ES6 类