最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Linux中shell腳本的jq命令用法詳解

 更新時(shí)間:2023年07月25日 09:09:03   作者:IT之一小佬  
這篇文章主要介紹了Linux中shell腳本的jq命令用法詳解,?jq是一個(gè)輕量級(jí)的命令行JSON處理工具,用于解析、過濾、修改和操作JSON數(shù)據(jù),它提供了一種簡潔和靈活的方式來處理JSON數(shù)據(jù),可以與其他命令行工具結(jié)合使用,需要的朋友可以參考下

1、jq介紹

jq是Linux系統(tǒng)中把文本字符串格式化成json格式的工具。

jq命令用于將JSON數(shù)據(jù)轉(zhuǎn)換為更易讀的格式并將其打印到 Linux 上的標(biāo)準(zhǔn)輸出。

jq命令是圍繞過濾器構(gòu)建的,過濾器用于從JSON文件中僅查找和打印所需的數(shù)據(jù)。

jq是一個(gè)輕量級(jí)的命令行JSON處理工具,用于解析、過濾、修改和操作JSON數(shù)據(jù)。

它提供了一種簡潔和靈活的方式來處理JSON數(shù)據(jù),可以與其他命令行工具(如grep、sed)結(jié)合使用,以實(shí)現(xiàn)復(fù)雜的JSON處理任務(wù)。

2、jq安裝

安裝EPEL源(這一步可以省略):
yum install epel-release -y
安裝完EPEL源后,可以查看下jq包是否存在
yum list jq
安裝jq
yum install jq -y

3、json數(shù)據(jù)準(zhǔn)備

[{
	"id": "1",
	"name": "zhangsan",
	"age": "18"
}, {
	"id": "2",
	"name": "lisi",
	"age": "19"
}, {
	"id": "3",
	"name": "wangwu",
	"age": "20"
}]

4、jq使用

4.1 jq --help

[root@dgw-machine ~]# jq --help
jq - commandline JSON processor [version 1.6]
Usage:  jq [options] <jq filter> [file...]
        jq [options] --args <jq filter> [strings...]
        jq [options] --jsonargs <jq filter> [JSON_TEXTS...]
jq is a tool for processing JSON inputs, applying the given filter to
its JSON text inputs and producing the filter's results as JSON on
standard output.
The simplest filter is ., which copies jq's input to its output
unmodified (except for formatting, but note that IEEE754 is used
for number representation internally, with all that that implies).
For more advanced filters see the jq(1) manpage ("man jq")
and/or https://stedolan.github.io/jq
Example:
        $ echo '{"foo": 0}' | jq .
        {
                "foo": 0
        }
Some of the options include:
  -c               compact instead of pretty-printed output;
  -n               use `null` as the single input value;
  -e               set the exit status code based on the output;
  -s               read (slurp) all inputs into an array; apply filter to it;
  -r               output raw strings, not JSON texts;
  -R               read raw strings, not JSON texts;
  -C               colorize JSON;
  -M               monochrome (don't colorize JSON);
  -S               sort keys of objects on output;
  --tab            use tabs for indentation;
  --arg a v        set variable $a to value <v>;
  --argjson a v    set variable $a to JSON value <v>;
  --slurpfile a f  set variable $a to an array of JSON texts read from <f>;
  --rawfile a f    set variable $a to a string consisting of the contents of <f>;
  --args           remaining arguments are string arguments, not files;
  --jsonargs       remaining arguments are JSON arguments, not files;
  --               terminates argument processing;
Named arguments are also available as $ARGS.named[], while
positional arguments are available as $ARGS.positional[].
See the manpage for more options.

4.2 顯示數(shù)據(jù)

jq '.' test.json
或者
cat test.json | jq '.'
cat test.json | jq -r '.'

4.3 訪問和輸出 JSON 文件中數(shù)組中存在的元素

jq '.[]' test.json

4.4 過濾數(shù)組

可以使用方括號(hào)([])來過濾數(shù)組中的元素。例如,要選擇數(shù)組中的第一個(gè)元素,可以使用以下命令:

jq '.[1]' test.json

4.5 訪問屬性

使用點(diǎn)操作符(.)來選擇JSON對(duì)象中的字段。

例如,要選擇名為"name"的字段,可以使用以下命令:

jq '.[1].name' test.json

4.6 過濾條件(if-then-else)

jq 'if .[].age > "19" then .[].name else empty end' test.json

4.7 過濾多個(gè)字段

可以使用逗號(hào)(,)將多個(gè)字段組合在一起。

例如,要選擇名字和年齡字段,可以使用以下命令:

jq '.[].name, .[].age' test.json

4.8 過濾組合操作符(and/or)

可以使用邏輯操作符(and/or)來組合多個(gè)過濾條件。例如,要選擇年齡大于18歲并且名字以"J"開頭的人,可以使用以下命令:

jq 'select(.age > 18 and .name | startswith("J"))' file.json

4.9 修改字段

可以使用賦值操作符(=)來修改字段的值。例如,要將名字字段修改為"John",可以使用以下命令:

jq '.[1].name = "John"' test.json

4.10 過濾數(shù)組中的對(duì)象

可以使用點(diǎn)操作符(.)和方括號(hào)([])來選擇數(shù)組中的對(duì)象。例如,要選擇數(shù)組中所有年齡大于19歲的人,可以使用以下命令:

jq '.[] | select(.age > "19")' test.json

4.11 過濾嵌套字段

可以使用點(diǎn)操作符(.)來選擇嵌套在對(duì)象中的字段。

例如,要選擇嵌套在"address"字段中的"city"字段,可以使用以下命令:

jq '.address.city' file.json

4.12數(shù)組聚合操作

可以使用reduce函數(shù)將數(shù)組中的元素聚合成一個(gè)值。

例如,要計(jì)算數(shù)組中年齡的總和,可以使用以下命令:

jq 'reduce .[] as $item (0; . + $item.age)' file.json

4.13數(shù)組映射操作

可以使用map函數(shù)將數(shù)組中的元素進(jìn)行映射轉(zhuǎn)換。

例如,要將數(shù)組中的所有年齡加1,可以使用以下命令

jq 'map(.age + 1)' file.json

4.14數(shù)組排序

可以使用sort_by函數(shù)對(duì)數(shù)組進(jìn)行排序。

例如,要按照年齡對(duì)數(shù)組中的對(duì)象進(jìn)行升序排序,可以使用以下命令:

jq 'sort_by(.age)' file.json

4.15數(shù)組切片

可以使用切片操作符([start:end])來選擇數(shù)組中的一部分元素。

例如,要選擇數(shù)組中的前3個(gè)元素,可以使用以下命令:

jq '.[:3]' file.json

4.16變量和函數(shù)

可以使用$符號(hào)定義變量,并使用def關(guān)鍵字定義函數(shù)。

例如,要定義一個(gè)函數(shù)來計(jì)算人的BMI指數(shù),可以使用以下命令:

jq 'def bmi: .weight / (.height * .height); .[] | .name, bmi' file.json

到此這篇關(guān)于Linux中shell腳本的jq命令用法詳解的文章就介紹到這了,更多相關(guān)shell腳本的jq命令內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Linux命令之lz4命令使用示例

    Linux命令之lz4命令使用示例

    lz4是一種非??焖俚臒o損壓縮算法,基于字節(jié)對(duì)齊LZ77系列壓縮方案,它的特點(diǎn)是極快的解碼器,每核速度可達(dá)多GB/s,通常在多核系統(tǒng)上達(dá)到RAM速度限制項(xiàng)目,這篇文章主要介紹了Linux命令之lz4命令,需要的朋友可以參考下
    2023-03-03
  • shell中[]與[[]]的區(qū)別小結(jié)

    shell中[]與[[]]的區(qū)別小結(jié)

    多數(shù)情況下[]和[[]]是可以通用的,但是也是有區(qū)別的,本文就來介紹一下shell中[]與[[]]的區(qū)別,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • 詳解TCP的四種定時(shí)器

    詳解TCP的四種定時(shí)器

    這篇文章主要介紹了詳解TCP的四種定時(shí)器的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • shell腳本實(shí)現(xiàn)輸入密碼顯示星號(hào)

    shell腳本實(shí)現(xiàn)輸入密碼顯示星號(hào)

    本文給大家分享使用shell腳本實(shí)現(xiàn)輸入密碼顯示星號(hào)的腳本寫法,在文章末尾給大家補(bǔ)充了shell輸入密碼時(shí)關(guān)閉屏幕回顯的實(shí)現(xiàn)方法,需要的朋友參考下吧
    2017-01-01
  • find 命令全集

    find 命令全集

    find命令用來在指定目錄下查找文件,本文給大家整理了關(guān)于find命令的相關(guān)知識(shí),感興趣的朋友跟隨小編一起看看吧
    2022-12-12
  • 完美解決ntp的錯(cuò)誤問題no server suitable for synchronization fo

    完美解決ntp的錯(cuò)誤問題no server suitable for synchronization fo

    下面小編就為大家?guī)硪黄昝澜鉀Qntp的錯(cuò)誤問題no server suitable for synchronization fo。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-03-03
  • Shell判斷字符串變量是否為空的方法實(shí)現(xiàn)

    Shell判斷字符串變量是否為空的方法實(shí)現(xiàn)

    本文主要介紹了Shell判斷字符串變量是否為空的方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • Linux目錄大小查看的常用命令詳解

    Linux目錄大小查看的常用命令詳解

    在 Linux 系統(tǒng)管理和日常維護(hù)中,了解文件和目錄占用磁盤空間的情況是一項(xiàng)基本而重要的任務(wù),du(Disk Usage)命令是完成這一任務(wù)的強(qiáng)大工具,而 du -h 則是其中最常用的命令形式之一,因此本文給大家詳細(xì)介紹了Linux目錄大小查看命令,需要的朋友可以參考下
    2025-05-05
  • shell腳本監(jiān)控mysql主從狀態(tài)

    shell腳本監(jiān)控mysql主從狀態(tài)

    這篇文章主要介紹了shell腳本監(jiān)控mysql主從狀態(tài),如果異常則郵件警告,需要的朋友可以參考下
    2014-05-05
  • Shell腳本實(shí)現(xiàn)查找字符串中某字符最后出現(xiàn)的位置

    Shell腳本實(shí)現(xiàn)查找字符串中某字符最后出現(xiàn)的位置

    這篇文章主要介紹了Shell腳本實(shí)現(xiàn)查找字符串中某字符最后出現(xiàn)的位置,本文給出了Shell腳本和C語言程序的實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2015-01-01

最新評(píng)論

阳新县| 六枝特区| 中宁县| 施秉县| 离岛区| 鹤峰县| 翼城县| 澎湖县| 无棣县| 沁阳市| 余姚市| 枣强县| 昔阳县| 沙河市| 花莲市| 封开县| 平乐县| 定远县| 陵水| 芦山县| 庆城县| 娄底市| 许昌市| 曲沃县| 洪江市| 大连市| 云浮市| 涿州市| 苍溪县| 宣武区| 神农架林区| 巍山| 永州市| 车致| 万山特区| 松阳县| 潼关县| 龙州县| 会宁县| 青川县| 西乌珠穆沁旗|