jq:传递不带引号的字符串参数

2023-12-03

我想传递一个不带引号的参数(JQ arg 默认情况下有双引号),因为它应该用作过滤器。例如

propt='.properties'
final=($(jq -r -c --arg p $propt '$p' sample.json))
echo $final

样本.json

{
  "type": "object",
  "description": "Contains information",
  "properties": {
    "type": {
      "description": "Type"
        }
   }
}

所以最终打印出来.properties而不是预期的{"type":{"description":"Type"}}为此,我使用 bash shell。

请让我知道我做错了什么。


如果我理解正确,那么您会因为认为需要在中设置变量而偏离主题jq,而不是仅仅让 shell 进行扩展:

% foo='.properties'
% jq -r -c  "$foo" sample.json 

output:

{"type":{"description":"Type"}}

请注意 $foo 上的双引号仍然允许 shell 将变量扩展为 .properties。这就是说你可能不安全地使用:jq -r -c $foo sample.json

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jq:传递不带引号的字符串参数 的相关文章

  • JQ 转换为数字,从 shell 变量生成新 json 时转换为布尔值

    我正在尝试生成 json 输出 其中输入来自 shell 变量 happystring Bob Ross unhappynumber1 1942 unhappyboolean true JSON jq n arg happystring h
  • jq:错误:test1/0 未在 处定义,第 1 行

    我有下面的 JSON 文件 并且在尝试在 shell 中动态向数组添加值时遇到错误 下面是一个 tmp json 文件 environments integration testing for jenkins job prod stagin
  • 如何使用 jq 获取两个 JSON 数组的交集

    给定数组 X 和 Y 最好都作为输入 但否则 一个作为输入 另一个硬编码 如何使用 jq 输出包含两者共有的所有元素的数组 例如f 的值是多少 使得 echo 1 2 3 4 jq f 2 4 6 8 10 会输出 2 4 我尝试过以下方法
  • 如何使用 jq 将 JSON 字符串格式化为表格?

    刚刚开始使用 Bash 脚本 并偶然发现 jq 可以使用 JSON 我需要将如下所示的 JSON 字符串转换为表格以在终端中输出 name George id 12 email email protected cdn cgi l email
  • jq:将数组转换为按文件名索引的对象?

    Using jq https stedolan github io jq 如何将数组转换为按文件名索引的对象 或将多个文件读取到按文件名索引的一个对象中 e g jq s map select roles contains mysql C
  • 将环境变量转换为json文件

    我正在尝试找到一种方法将配置设置提供给在容器中运行的 SPA 应用程序 我当前的计划是将配置作为环境变量传递 然后在容器启动时 从这些环境变量生成一个 json 文件以传递到浏览器 以及 SPA 应用程序 我计划像这样格式化我的环境变量 E
  • 如何选择子值数组包含某个属性的 json 对象

    我有一个类似于以下内容的对象数组 id one tags my key true id two 如何为包含 my key 为 true 的标签的每个对象选择所有 id 值 您可以使用select with tags my key true
  • 如何选择 jq 中作为变量提供的键的值?

    如果这是输入 a key 2 another key 100 one more key 4 2 通过提供键的名称作为变量来选择这些键的值的最佳方法是什么 理想情况下 我正在寻找类似的东西 a key as key key 但这会导致语法错误
  • 为什么 jq 打印记录冗余且不匹配以及如何修复?

    我有一个 json 文件 其中包含六个 发票 对象 每个对象有 140 多行值 我只想查看六个对象中每个对象的几个值 jq似乎是一个有前途的解决方案 我在用着jq version 1 5 1 a5b5cbe可以通过以下方式获得apt的常用存
  • jq 从数组中选择值

    我有以下带有示例值的 JSON 文件 files fileName FOO md5 blablabla fileName BAR md5 alaldlafj 现在我想要的是返回 md5 值 例如文件名是 FOO 为此我有以下声明jq cat
  • 如何中止存储桶的所有不完整分段上传

    有时 分段上传会因某种原因挂起或无法完成 在这种情况下 您将陷入难以删除的孤立部分 您可以通过以下方式列出它们 aws s3api list multipart uploads bucket BUCKETNAME 我正在寻找方法来中止它们
  • jq - 按值排序

    我有以下结构 ID XX guid 1 ID YY guid 2 我尝试过运行 jq sort by guid conn json 但是我收到一个错误 Cannot index string with string guid 请您告诉我如何
  • jq:将对象数组转换为对象

    我收到了来自curl的回复 格式如下 list value 1 id 12 value 15 id 13 value 4 id 14 给定 id 之间的映射 如下所示 12 newId1 13 newId2 14 newId3 我想做这个
  • 在单行上获取 jq 的输出

    我使用以下输出 https stackoverflow com a 40330344 https stackoverflow com a 40330344 issues key status fields status name assig
  • 如何修复 jq 扁平化 JSON 数组的重复输出

    我正在尝试使用 jq 命令压平 JSON 文件 但输出是重复的 请在这里查看我的jqplay https jqplay org s gwvMIH fed https jqplay org s gwvMIH fed 我的输入 JSON cos
  • 在 shell 中处理 json 时,例如使用curl,如何正确地将多个 jq 语句链接在一起?

    我是 jq 新手 所以如果这不是 jq 问题或 json 问题 请为我指出正确的方向 我不确定正确的术语 因此我很难正确地阐明问题 我正在使用curl 来提取一些json 我想过滤掉具有特定值的键 以下是一些示例 json id 593f4
  • 使用 jq 过滤空值和/或 null 值

    我有一个包含 jsonlines 的文件 想找到空值 name Color TV price 1200 available name DVD player price 200 color null 并希望输出空和 或空值及其键 availa
  • jq:根据 group by 计算嵌套对象值

    Json account 1 cost usage low totalcost 2 01 account 2 cost usage low totalcost 2 25 account 1 cost usage low totalcost
  • 将字符串替换为 jq

    我有以下文件file txt a a b a time 20210210T10 10 00 a b b b time 20210210T11 10 00 我用以下方法提取值bash命令jq 我在海量 100g 文件上使用此命令 jq r a
  • 类似 jq 中的 sql join

    我有以下 json id 1 type folder title folder 1 id 2 type folder title folder 2 id 3 type item title item 1 folder 1 id 4 type

随机推荐