如果使用选择过滤器,则带有curl的jq将失败

如果使用选择过滤器,则带有curl的jq将失败,curl,jq,Curl,Jq,我正在将curl输出管道化到jq:并且在尝试使用select过滤器之前,一切都很好 这个过滤器在他们的在线工具中运行良好:下载文件后在我的命令行实验中运行良好 只有当我尝试将curl输出直接导入jq时,才会出现这个问题 这失败了: i71178@SLCITS-L2222:~/next-gen/mongodb$ curl 'http://fhirtest.uhn.ca/baseDstu3/Patient?_format=json&_count=50&_pretty=false&am

我正在将curl输出管道化到jq:并且在尝试使用select过滤器之前,一切都很好

这个过滤器在他们的在线工具中运行良好:下载文件后在我的命令行实验中运行良好

只有当我尝试将curl输出直接导入jq时,才会出现这个问题

这失败了:

i71178@SLCITS-L2222:~/next-gen/mongodb$ curl 'http://fhirtest.uhn.ca/baseDstu3/Patient?_format=json&_count=50&_pretty=false&_summary=data' | jq-linux64 --unbuffered -r -c '.link[] | select(.relation == next) | .url' | head -3
jq: error: next/0 is not defined at <top-level>, line 1:
.link[] | select(.relation == next) | .url                              
jq: 1 compile error
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  2421    0  2421    0     0   2413      0 --:--:--  0:00:01 --:--:--  2413
curl: (23) Failed writing body (1675 != 2736)
i71178@SLCITS-L2222:~/next-gen/mongodb$ 
对于上下文,这是将管道导入选择过滤器的内容:

i71178@SLCITS-L2222:~/next-gen/mongodb$ curl 'http://fhirtest.uhn.ca/baseDstu3/Patient?_format=json&_count=50&_pretty=false&_summary=data' | jq-linux64 --unbuffered -r -c '.link[]' | head -3
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 46801    0 46801    0     0  64411      0 --:--:-- --:--:-- --:--:-- 64375
{"relation":"self","url":"http://fhirtest.uhn.ca/baseDstu3/Patient?_count=50&_format=json&_pretty=false&_summary=data"}
{"relation":"next","url":"http://fhirtest.uhn.ca/baseDstu3?_getpages=00952912-c9ab-47ca-826c-200bddffe617&_getpagesoffset=50&_count=50&_format=json&_bundletype=searchset"}
i71178@SLCITS-L2222:~/next-gen/mongodb$ 
我真的很感激这里的任何帮助


谢谢

问题显然是您的
选择
过滤器:

 select(.relation == next)
我想你的意思是:

select(.relation == "next")
更安全的做法是:

select(.relation? == "next")

问题显然是您的
select
过滤器:

 select(.relation == next)
我想你的意思是:

select(.relation == "next")
更安全的做法是:

select(.relation? == "next")

事实上,这就是我最初的想法,我很确定。我似乎错误地发布了我试图让它工作的一次尝试。我会仔细检查并进行编辑。看起来是我的复制粘贴错误。我确实试图在命令行上执行select(.relation==next),这导致了一个错误,这是可以理解的。很抱歉误报。事实上,我很确定这是我最初的想法。我似乎错误地发布了我试图让它工作的一次尝试。我会仔细检查并进行编辑。看起来是我的复制粘贴错误。我确实试图在命令行上执行select(.relation==next),这导致了一个错误,这是可以理解的。对不起,误报了。