You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用awk匹配2019年创建的KMS密钥时如何同时输出对应密钥ID

方案1:调整原有awk逻辑实现

你现有命令的问题是仅匹配并打印了符合条件的createdAt行,没有关联存储对应的密钥ID记录。假设ksctl输出的单条密钥记录顺序为id在前、createdAt在后,修改后命令如下:

./ksctl keys list -l 100 | egrep -w 'id|createdAt' | awk '/"id"/ {save_id=$0} /"createdAt"/ && $2 ~ /"2019/ {print $0; print save_id}' > keylist.txt

逻辑说明:

  • 先移除egrep中不需要的name字段筛选,减少无关数据处理
  • awk运行时,每次匹配到id行就将整行内容暂存到save_id变量
  • 匹配到createdAt行且年份为2019时,先打印当前时间行,再打印之前暂存的对应ID行

如果你的ksctl输出顺序是createdAt在前、id在后,调整awk逻辑即可:

./ksctl keys list -l 100 | egrep -w 'id|createdAt' | awk '/"createdAt"/ && $2 ~ /"2019/ {save_ct=$0} /"id"/ && save_ct != "" {print save_ct; print $0; save_ct=""}' > keylist.txt

方案2:用jq处理更稳妥(推荐)

如果ksctl输出的是标准JSON格式,直接用jq筛选不会受字段顺序变化影响,兼容性更好:

./ksctl keys list -l 100 | jq '.[] | select(.createdAt | startswith("2019")) | {"createdAt": .createdAt, "id": .id}' > keylist.txt

内容的提问来源于stack exchange,提问作者Cruhrup96

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 21:51:03