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

如何将jq提取的JSON变量字符串按每两项拆分换行?

解决方法:将带引号的字符串按每两个元素分组换行

嗨,作为新手遇到这种字符串处理问题很正常,别担心!我给你几个简单易懂的方法来实现你的需求,不用复杂的语法就能搞定:

方法一:用xargs快速分组(最简洁)

xargs工具很适合处理这种空格分隔的参数,-n 2参数可以让它每两个元素输出一行。直接把变量内容传给它就行:

var='"Serge" "Haroche" "David J." "Wineland"'
echo "$var" | xargs -n 2

运行后就能得到你想要的输出:

Serge Haroche
David J. Wineland

注意:echo后面一定要加双引号"$var",这样才能保留变量里原有的引号和空格结构,让xargs正确识别每个带引号的元素。

方法二:用awk实现(灵活可控)

如果你想更清楚地理解处理过程,awk的写法也很直观,它会把每个带引号的内容当作一个“字段”:

var='"Serge" "Haroche" "David J." "Wineland"'
echo "$var" | awk '{
    for (i = 1; i <= NF; i += 2) {
        print $i, $(i+1)
    }
}'
  • NF是awk里的内置变量,代表当前行的字段总数
  • 循环从第1个字段开始,每次跳2个,打印当前字段和下一个字段,自动换行

为什么cut不行?

你之前用cut没成功,是因为cut主要是按固定字符数或单一分隔符(比如逗号、空格)切割,但你的元素里有内部空格(比如David J.),cut没法区分“元素之间的空格”和“元素内部的空格”,所以没法正确分组~

内容的提问来源于stack exchange,提问作者Haskell-newb

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 05:25:59