首页 > 解决方案 > 如何使用 jq 获取第一个数据?

问题描述

我有一些测试数据文件 test.txt:

{
  "type": "home",
  "number": "212 555-1234"
}
{
  "type": "fax",
  "number": "646 555-4567"
}

我尝试获取第一个数字:

jq .number test.txt

但它得到了所有的数字。

谁能帮我?

标签: jsonjq

解决方案


如您所见,默认情况下,jq 读取整个输入流。-n 命令行选项关闭此行为,因此一个(有效的)解决方案是:

jq -n 'input.number' test.txt

如果你的 jq 没有input,那么现在是升级的好时机;如果这是不可能的:

jq -s '.[0].number' test.txt

推荐阅读