key - 使用枚举动态更改键名
问题描述
我想ps -Ao comm,pmem --sort=-pmem | head -n 6
使用 jq 将命令的输出解析为 JSON。
我目前的单线是
ps -Ao comm,pmem --sort=-pmem | head -n 6 | jq -sR '[sub("\n$";"") | splits("\n") | sub("^ +";"") | [splits(" +")]] | .[0] as $header | .[1:] | [.[] | [. as $x | range($header | length) | {"key": $header[.], "value": $x[.]}] | from_entries]'
输出很好,但键只是 ps 命令的列名。我希望每个条目都有一个动态名称,例如 COMMAND_1、COMMAND_2... %MEM_1、%MEM_2 等
解决方案
一个解决方案可以用nl
并使用第一列0
计算键名。
ps -Ao comm,pmem --sort=-pmem | head -n 6 | nl -s' ' -v0 | \
jq -sR '[sub("\n$";"") | splits("\n") | sub("^ +";"") | [splits(" +")]] | .[0] \
as $header | .[1:] | [.[] | [. as $x | \
range( 1 ; ( $header | length ) ) | \
{"key": ($header[.]+"_"+($x[0]|tostring)) , "value": $x[.]} ] | from_entries ]'
推荐阅读
- python - 使用内部函数不起作用的正则表达式查找和替换操作
- reactjs - 在 React 中渲染数据时遇到问题
- python - 如何在 Visual Studio Code 中为可执行文件和库设置 python 环境路径
- php - 无法在 Siteground/Wordpress 上集成 AliDropship WooCommerce 插件
- arrays - 将数组值插入 $scalar - Perl
- c# - 不和谐 OAuth .net 核心 2
- php - Yii2:如何使用 SQL 查询生成带有“分组依据”的 JSON 对象?
- ios - 使用 biometryCurrentSet iOS 更改指纹后项目不会失效
- html - 在转换期间隐藏文本(即缩放),使其仅在转换结束后可见,同时保持文本大小不变
- django-rest-framework - 用于 REST API 密码重置的 Django 表单