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

如何通过jq字符串拼接将lscpu命令输出自定义为单行?

问题原因

你之前的拼接写法失效,是因为遍历.lscpu数组时,每个元素只能匹配其中一个select筛选条件,无法在单个元素上同时拿到两个字段的值,因此拼接操作无法返回有效结果。

解决方案

这里提供两种可行的实现方式:

方法1:先筛选再拼接

lscpu -J | jq -r '.lscpu | map(select(.field == ("CPU(s):", "Model name:")).data) | join(" x ")'

逻辑说明:先从.lscpu数组中筛选出两个目标字段的data值,得到双元素数组后直接用join方法拼接为单行字符串。

方法2:临时存储数组后分别取值拼接

lscpu -J | jq -r '.lscpu as $all | ($all[] | select(.field=="CPU(s):").data) + " x " + ($all[] | select(.field=="Model name:").data)'

逻辑说明:先把整个.lscpu数组存为临时变量,再分别从全量数组中提取两个目标字段的值做拼接,规避单个元素无法同时匹配两个条件的问题。

输出效果

两种命令执行后都会得到预期的单行结果:

4 x AMD A4-6210 APU with AMD Radeon R3 Graphics

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 21:06:04