按标签名称对EC2实例进行排序
因此,除了JQ工具之外,我正在使用AWS CLI检索实例列表.我使用以下命令. aws ec2 describe-instances | jq '.Reservations[].Instances[]' 带有以下示例JSON响应. { "Reservations": [ { "OwnerId": "1234", "ReservationId": "r-124991k", "Groups": [], "Instances": [ { "Monitoring": { "State": "disabled" }, "PublicDnsName": "",
0 2024-01-26
编程技术问答社区
使用jq来解析AWS CLI工具的json输出
我想使用JQ( http://stedolan.github.io/jq/ )解析来自AWS EC2示例的JSON输出,并返回实例ID并仅在标签包含名称的地方标记.所有者,CostCentre. 这是代表源输出的部分编辑的JSON: { "OwnerId":"121456789127", "ReservationId":"r-48465168", "Groups":[ ], "Instances":[ { "Monitoring":{ "State":"disabled" }, "PublicDnsName":null, "RootDeviceType":"ebs", "State":{ "Code":16, "Name":"running" }, "EbsOptimized":false, "Launc
2 2024-01-26
编程技术问答社区
如何使用jq从多个嵌套数组中提取键值
设置 我试图弄清JQ过滤器的工作方式,并且难以弄清楚嵌套数组.使用下面的数据,我无法进行平面5键输出.我可以获得1个键和4个nulls或4个键和1个null,但不是全部5个键. 1键,4个nulls: .Reservations[] | {OwnerId, InstanceId, ImageId, PrivateIpAddress, Platform} 返回: { "OwnerId": "000000000000", "InstanceId": null, "ImageId": null, "PrivateIpAddress": null, "Platform": null } 4键,1个null: .Reservations[].Instances[] | {OwnerId, InstanceId, ImageId, PrivateIpAddress, Platform} { "OwnerId": null, "Instance
2 2024-01-25
编程技术问答社区
Docker错误-"jq:错误。不能对空进行迭代"
因此,我正在尝试在弹性豆stalk上部署一个dockerfile,但是我无法克服此错误 - " JQ:错误:无法通过null迭代". Successfully built [myContainerId] Successfully built aws_beanstalk/staging-app [2015-01-29T10:35:59.494Z] INFO [16343] - [CMD-AppDeploy/AppDeployStage0/AppDeployPreHook/04run.sh] : Starting activity... [2015-01-29T10:36:05.507Z] INFO [16343] - [CMD-AppDeploy/AppDeployStage0/AppDeployPreHook/04run.sh] : Activity execution failed, because: command failed with error code 1: /op
2 2024-01-25
编程技术问答社区
列出EC2实例的公共IP地址
我想使用bash列出我的EC2实例的公共IP地址,并由定界线分开(空间或新线). 我试图将输出输送到 jq 带有aws ec2 describe-instances | jq,但似乎无法仅隔离IP地址. 可以单独通过aws来完成,将参数指定为jq或其他内容? 解决方案 直接来自 aws cli : aws ec2 describe-instances \ --query "Reservations[*].Instances[*].PublicIpAddress" \ --output=text 其他解决方案 在运行实例上过滤(如果您不需要的话,可以删除该部分) 查询每个PublicIpAddress和名称标签,当未设置名称时进行处理 aws ec2 describe-instances \ --filter "Name=instance-state-name,Values=running" \ --query "Reservatio
2 2024-01-25
编程技术问答社区
如何中止一个桶的所有不完整的多部分上传
有时由于某种原因将多部分上传悬挂或不完成.在这种情况下,您会陷入棘手的孤立零件上,这些零件很难去除.您可以列出: aws s3api list-multipart-uploads --bucket $BUCKETNAME 我正在寻找全部中止它们的方法. 解决方案 假设您拥有awscli所有设置,并且可以输出JSON,您可以使用jq来投影所需的键: BUCKETNAME= aws s3api list-multipart-uploads --bucket $BUCKETNAME \ | jq -r '.Uploads[] | "--key \"\(.Key)\" --upload-id \(.UploadId)"' \ | while read -r line; do eval "aws s3api abort-multipart-upload --bucket $BUCKETNAME $line"; done 其他解决方案 如果您要进行多部
0 2024-01-25
编程技术问答社区
通过bash-case不敏感地过滤json
我有JSON代码,需要通过属性 dnsname 的值过滤它.过滤器必须不敏感. 我该怎么做?是否有可能用 jq ? 解决它 这就是我创建JSON代码的方式: aws elbv2 describe-load-balancers --region=us-west-2 | jq 我未经过滤的源json代码看起来像这样: { "LoadBalancers": [ { "IpAddressType": "ipv4", "VpcId": "vpc-abcdabcd", "LoadBalancerArn": "arn:aws:elasticloadbalancing:us-west-2:000000000000:loadbalancer/app/MY-LB1/a00000000000000a", "State": { "
4 2024-01-24
编程技术问答社区
JQ: 当属性值存在于bash数组中时进行选择
我正在使用JQ 1.4. 当我的$selected_subnets中存在vpczoneidentifier时,我试图选择元素(bash varible). selected_subnets="valueA valueB" input='{"elements":[ {"name": "nameA", "VPCZoneIdentifier": "valueA"}, {"name": "nameB", "VPCZoneIdentifier": "valueB"}, {"name": "nameC", "VPCZoneIdentifier": "valueC"} ]}' test和match fn仅在V1.5上可用. 解决方案 这有点棘手,但是可以使用reduce来完成.整个事情看起来都这样: selected_subnets_json=$(echo "\"$selected_subne
2 2024-01-24
编程技术问答社区
如何在单行中获得jq的输出?
我已经使用了带有AWS CLI的JQ来打印实例. 例如: 检索实例列表 aws ec2 describe-instances --filters "Name=tag:bld_env,Values=test" --output json > all-inst.json JQ打印实例ID: jq -r '.Reservations[].Instances[].InstanceId' all-inst.json JQ的输出: i-09e0d805cc i-091a61038 i-07d3022 i-0428ac7c4c i-970dc5c4d99 i-014c4ea i-0ac924df i-031f6 and so on.. 我想在这样的行中打印它们: i-09e0d805cc,i-091a61038,i-07d3022,i-0428ac7c4c,i-970dc5c4d99,i-014c4ea,i-0ac924df,i-031f6 a
0 2024-01-24
编程技术问答社区
jq中的SQL样式GROUP BY聚合函数(COUNT、SUM等)
之前在这里提出的类似问题: 计数单键的项目: JQ计数JSON中的项目数 计算对象值的总和: 我如何总和值在JQ? 中的一系列地图中 问题 如何模拟计数汇总函数,该函数的行为应与其SQL原始功能相似?让我们更多地扩展此问题以包括其他常规SQL功能: count sum/max/min/avg array_agg 最后一个不是标准的SQL函数 - 它来自PostgreSQL,但非常有用. 在输入处出现有效的JSON对象.对于演示,让我们选择一个简单的主人及其宠物的故事. 模型和数据 基础关系:所有者 id name age 1 Adams 25 2 Baker 55 3 Clark 40 4 Davis 31 基础关系: pet id name litter owner_id 10 Bella 4 1 20 Lucy 2 1 30 Daisy
0 2024-01-19
编程技术问答社区
使用JQ按日期范围解析JSON组
我有以下JSON数据: { "data": [ {"date": "2018-08-22","value": 1}, {"date": "2018-08-30","value": 2}, {"date": "2018-09-01","value": 3}, {"date": "2018-09-22","value": 3}, {"date": "2018-09-28","value": 4}, {"date": "2018-10-18","value": 5}, {"date": "2018-10-23","value": 6} ] } 我想使用JQ以第一个值开始每月分组数据: 我的一个月是: 2018 08 22至2018 09 21 2018 09 22至2018 10 21 2018 10 22至2018 11 21 我的预期输出如下: { "data": [
0 2024-01-19
编程技术问答社区
JQ 如何将一个数组中的多个对象合并为一个对象
正如我下面提到的问题所述,有点复杂. 我学会了使用阵列更多,但也搞砸了. 输入: { "a": [ { "b": "c", "d": "e" }, { "b": "f", "d": "g" } ], "h": [ { "b": "c", "i": "j" }, { "b": "f", "i": "k" } ] } 所需的输出: { "l": [ { "b": "c", "d": "e", "i": "j" }, { "b": "f", "d": "g", "i": "k" } ] } 我尝试的事情,基于 jq将多个对象合并为一个 { x: [ inputs | .a[] |
10 2024-01-19
编程技术问答社区
如何将jq中的对象序列合并为一个对象?
我想转换对象流: { "a": "green", "b": "white" } { "a": "red", "c": "purple" } 进入一个对象: { "a": "red", "b": "white", "c": "purple" } 另外,如何将相同的顺序包装到数组中? [ { "a": "green", "b": "white" }, { "a": "red", "c": "purple" } ] 可悲的是,手册严重缺乏全面性,谷歌搜索也找不到答案. 解决方案 如果您的输入是对象流,则除非您的JQ具有inputs,否则必须" slured"对象,例如使用-s命令行选项,以组合它们. 因此,将对象组合在输入流中的一种方法是使用: jq -s add 对于第二个问题,创建一个数组: jq -s . 当然还有其他
0 2024-01-19
编程技术问答社区
从JSON对象中提取数值,并在一个循环中把它们分配给Shell变量
我正在使用jq喜欢以下来解析JSON文件 - JSON文件看起来像 - { "values": [ { "email": "user1@domain.com", "id": "USER1_ID" },{ "email": "user2@domain.com", "id": "USER2_ID" }, . ] } 我能够通过以下ID进行打印/迭代 for k in $(cat input.json | jq .values | jq .[].id); do echo $k done 这将按预期打印每个单独的ID. 但是,我想要的是访问循环中的电子邮件和ID. 我试图将值分配给以下 - 之类的壳变量 emails=$(cat input.json | jq .values | jq .[].email) ids=$(cat input.json | jq .v
4 2023-12-26
编程技术问答社区
jq-bash和zsh以及zsh-subshell之间的换行处理有差异
我正在尝试我很困惑,不确定那里发生了什么: 这是已知的ZSH行为吗? 这是jq错误? 或它的设计工作,我缺少某些内容? btw:与JQ一起使用newline 建议使用printf %b来获得printf %b而不是适用于狂欢的\\n.但是在模式之间zsh中的差异仍然存在. $ jq --version jq-1.6 # --- # Using \n directly bash-3.2$ jq --null-input --compact-output --raw-output --monochrome-output --arg test 'A\nB' '{test: $test}' {"test":"A\\nB"} bash-3.2$ OUT=$(jq --null-input --compact-output --raw-output --monochrome-output --arg test 'A\nB' '{test: $test}');
0 2023-12-26
编程技术问答社区
用yq编辑数组中的yaml对象。加快Terminalizer'的终端铸造(记录)。
目标:加快终端器的终端铸件(记录) 我有一个用终端器创建的终端记录. cast.yaml: # The configurations that used for the recording, feel free to edit them config: # do not touch it # Records, feel free to edit them records: - delay: 841 content: "\e]1337;RemoteHost=kyb@kyb-nuc\a\e]1337;CurrentDir=/home/kyb/devel/git-rev-label\a\e]1337;ShellIntegrationVersion=7;shell=fish\a" - delay: 19 content: "\e]1337;RemoteHost=kyb@kyb-nuc\a\e]1337;CurrentDir=/home/kyb/devel
6 2023-12-25
编程技术问答社区
用GitLab CI的语法来写FOR循环语句?
以下是gitlab-ci.yml文件中提到的脚本.此GitLab CI配置是有效的.但是,当运行CI/CD构建时,作业会失败.与for循环语法有关吗? deploy_dv: stage: deploy_dv variables: GIT_STRATEGY: none script: - echo "Deploying Artifacts..." - echo "Configure JFrog CLI with parameters of your Artifactory instance" - 'c:\build-tools\JFROG-CLI\jfrog rt config --url %ARTIFACTORY_WEBSITE% --user %ARTIFACTORY_USER% --apikey %APIKEY%' - 'cd ..\artifacts' - 'SETLOCAL ENABLEDELAYEDEXPANSION' - FOR
6 2023-12-25
编程技术问答社区
Yq: 检索对象键名
我有一个看起来像这样的yaml文件(在我的情况下是docker-compose文件): networks: foo: some_opts: "covfefe" bar: some_opts: "such wow" services: apache: image: 'apache:1.0.0' restart: always mysql: image: 'mysql:1.0.0' restart: always php: image: 'php' restart: always 我想通过 yq ,相当于jq>但是对于yaml来说,要有此输出: "apache" "mysql" "php" 目前我可以这样实现: $ cat docker-compose.yml | yq '.services' | yq 'keys[]' "apache" "mysql" "php"
2 2023-12-25
编程技术问答社区