jq的--arg参数用法

--arg

这是最基本的参数

--arg name value

含义是定义变量$name的值为"value"。

注意这里的value是安装字符串处理的,所以即使是数字值,也是数字串,例如--arg v 123,那么$v=="123"。

举个例子:

$ echo '{"AA":"aa","BB":"bb"}' | jq --arg v XX '.BB=$v'

{

"AA": "aa",

"BB": "XX"

}

举一个数字的例子:

$ echo '{"AA":"aa","BB":"bb"}' | jq --arg v 123 '.CC=$v'

{

"AA": "aa",

"BB": "bb",

"CC": "123"

}

显然数字被按照字符串处理啦,这里没有别的办法只能使用类型转化:

$ echo '{"AA":"aa","BB":"bb"}' | jq --arg v 123 '.CC=($v|tonumber)'

{

"AA": "aa",

"BB": "bb",

"CC": 123

}

参数--arg最常用的场景也就是这里,试想上述例子,如果不用--arg如何替换字段"BB"的值呢:

J='{"AA":"aa","BB":"bb"}'

V="vv"

#echo ${J} | jq '.BB=$V'

echo ${J} | jq '.BB="'$V'"'

echo ${J} | jq --arg v ${V} '.BB=$v'

从词法表达式看使用--arg显得更为简洁。

使用多个参数

J='{"AA":"aa","BB":"bb"}'

V1="vv"

V2="ww"

echo ${J} | jq --arg v1 ${V1} --arg v2 ${V2} '.AA=$v1 | .BB=$v2'

参数--argjson

和--arg相比,差别就是--arg表示一个简单的字符串值,而--argjson表示一个json对象。

J='{"AA":"aa","BB":"bb"}'

A='{"XX":"xx","YY":1234}'

echo ${J} | jq --argjson a ${A} '.CC=$a'

# {

# "AA": "aa",

# "BB": "bb",

# "CC": {

# "XX": "xx",

# "YY": 1234

# }

}

echo ${J} | jq --argjson a ${A} '.CC=$a.YY'

# {

# "AA": "aa",

# "BB": "bb",

# "CC": 1234

# }

参数--slurpfile和--rawfile

表示从文件中读取参数,或者json文本,还是字符串文本;他们分别对应于参数--arg和--argjson。

其实--slurpfile对应于--argfile更直接,但是jq文档建议用--slurpfile,但我连这个单词什么意思都不认识呢:-( 。

linux arg 参数,jq的--arg参数用法相关推荐

  1. js获取url参数vue.js获取url参数 JQ获取url参数

    在WEB开发中,时常会用到javascript来获取当前页面的url网址信息,在这里是我的一些获取url信息的小总结. 1.window.location.href(设置或获取整个 URL 为字符串) ...

  2. linux shell命令行选项与参数用法详解

    问题描述:在linux shell中如何处理tail -n 10 access.log这样的命令行选项? 在bash中,可以用以下三种方式来处理命令行参数,每种方式都有自己的应用场景. 1,直接处理, ...

  3. Linux下Shell脚本命令行参数:getopt、getopts用法

    目录 简介 getopt 简介 支持选项 用法 getopt optstring parameters getopt [options] [--] getopt [options] -o|--opti ...

  4. linux系统服务设置命令--chkconfig命令参数及用法详解

    chkconfig(check config) 功能说明:chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息.谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的 ...

  5. linux系统中mywho命令,linux查看在线用户 who命令参数及用法

    linux who 命令 详解 Linux最常用命令之一 功能说明:显示目前登入系统的用户信息. 语 法:who [-Himqsw][--help][--version][am i][记录文件] 补充 ...

  6. linux cp -r 参数,Linux系统中cp命令的参数及用法详解

    Linux系统中cp命令主要是用来复制文件或者目录.下面由学习啦小编为大家整理了Linux系统中cp命令的参数及用法详解的相关知识,希望对大家有帮助! Linux系统中cp命令的参数及用法详解:参数说 ...

  7. 函数参数中带省略号的用法

     [转]函数参数中带省略号的用法 本文摘自CDSN<可变参数学习笔记>,原帖链接:http://topic.csdn.net/t/20041124/09/3582660.html 前言 ...

  8. 在Linux执行命令报错”Arg list too long”的原因分析

    http://www.yunweipai.com/archives/558.html 在Linux执行命令报错"Arg list too long"的原因分析 吞拿鱼手卷 于 3 ...

  9. linux下c语言线程传参数,【linux】C语言多线程中运行线程池,在线程池中运行线程池,,传递的结构体参数值为空/NULL/0...

    C语言多线程中运行线程池,在线程池中运行线程池,,传递的结构体参数值为空/NULL/0 本贴问题,之前已经提问过一次,当时已经解决了,原贴在这里https://segmentfault.com/q/1 ...

最新文章

  1. 腾讯——这可是一只“骨骼清奇”的狗
  2. 文件输入输出和string流
  3. c语言程序中的注释必须单独占一行,C语言习题第一章
  4. 阿狸心形表白html,2013qq情侣分组心形一对 心心相印的地久天长
  5. java 数组随机抽取_Java利用数组随机抽取幸运观众
  6. USACO 3.3 Riding the Fences(欧拉路输出路径)
  7. 如何批量将 Txt 文本文档转换为 xlsx 格式的 Excel 文档
  8. 瀛洲大学计算机专业毕业 卖身,目前计算机芯片 ( 集成电路 ) 制造的主要原料 } 是 () ,它是一种可以在沙子中提炼出的物质。_学小易找答案...
  9. opencore 引导 近完美 黑苹果EFI(技嘉H310/I5-9400F/RX560D)
  10. ufs2.1 android bench,小米6使用的是UFS2.1闪存吗?小米6闪存AndroBench跑分成绩
  11. 手把手教你如何微信公众号开发“翻译功能
  12. win10 计划任务时提示所指定的账户名称无效解决方法
  13. 剑侠情缘手游服务器bug修复,剑侠情缘手游因BUG大回档 摆摊功能依然受影响
  14. 微信小程序运营系列(五)——门店运营的基础流程
  15. php安装ImageMagick
  16. centos打开指定端口(443),Linux防火墙状态查看的方法
  17. 苹果x和xsmax有什么区别_支持4G的苹果11Pro和支持5G的苹果12Pro有什么区别呢?
  18. 蓝桥杯单片机——Ds1302时间开始与暂停
  19. 高通平台手机开发之Sensor
  20. [python]打飞机小游戏代码

热门文章

  1. [文摘20070914]一个成功的博客必须知道的80个博客工具
  2. 在ubuntu中安装awvs
  3. the_easiest_RSA
  4. 纳德拉憾失左膀右臂 陆奇离任为哪般
  5. 从零基础到考取HCIP,我是如何去系统学习网工知识的
  6. 一个做电商的表哥,一年轻松赚五十万,也没有见他发货,是如何做到的?
  7. Linux操作系统~系统文件IO,什么是文件描述符fd?什么是vfs虚拟文件系统
  8. 关于“python无法定位序数242于动态链接库: libiomp5md.dll”问题的解决
  9. HTML5和CSS3六CSS3三
  10. 第一周:手写数字识别