我將此存盤為檔案:
{
"Targets": [
{
"Id": "xxx_hourly_cron",
"Arn": "arn:aws:ecs:eu-west-2:000000000000:cluster/drupal-cluster",
"RoleArn": "arn:aws:iam::000000000000:role/ecsEventsRole",
"EcsParameters": {
"TaskDefinitionArn": "arn:aws:ecs:eu-west-2:000000000000:task-definition/xxx-cron:55",
"TaskCount": 1,
"EnableECSManagedTags": false,
"EnableExecuteCommand": false,
"PropagateTags": "TASK_DEFINITION"
}
}
]
}
使用 bash 和 jq 我想把它修剪一下:
{
"TaskDefinitionArn": "arn:aws:ecs:eu-west-2:000000000000:task-definition/xxx-cron:55",
"TaskCount": 1,
"EnableECSManagedTags": false,
"EnableExecuteCommand": false,
"PropagateTags": "TASK_DEFINITION"
}
我已經嘗試過了,但它不輸出密鑰:
cat rule-target.json | jq '(.Targets[] .EcsParameters[])'
uj5u.com熱心網友回復:
你是如此接近:
$ jq '.Targets[].EcsParameters' rule-target.json
{
"TaskDefinitionArn": "arn:aws:ecs:eu-west-2:000000000000:task-definition/xxx-cron:55",
"TaskCount": 1,
"EnableECSManagedTags": false,
"EnableExecuteCommand": false,
"PropagateTags": "TASK_DEFINITION"
}
由于EcsParameters它不是陣列,因此您不應該打開它 ( [])。
cat通常在做時它是無用的cat file | cmd,許多命令將檔案作為引數:
cmd -flag -flag2 file1.txt file2.txt
如果他們不這樣做,那么您可以重定向標準輸入:
cmd -flag -flag2 < file1.txt
uj5u.com熱心網友回復:
我想你想要:
jq '(.Targets[]|.EcsParameters)' rule-target.json
結果是:
{
"TaskDefinitionArn": "arn:aws:ecs:eu-west-2:000000000000:task-definition/xxx-cron:55",
"TaskCount": 1,
"EnableECSManagedTags": false,
"EnableExecuteCommand": false,
"PropagateTags": "TASK_DEFINITION"
}
uj5u.com熱心網友回復:
您可以使用
jq '.Targets[] | .EcsParameters' rule-target.json
Demo
在當前情況下看到的陣列包裝器洗掉物件包裝器
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/412312.html
標籤:
