色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

bash json解析

林玟書2年前9瀏覽0評論

Bash中常常需要解析JSON字符串,以獲取其中的信息或者進行數據處理。本文將介紹如何在Bash中使用jq工具進行JSON解析。

首先需要安裝jq工具,可以使用以下命令進行安裝:

sudo apt-get install jq

接下來,可以通過以下命令來解析JSON字符串:

json='{ "name": "John", "age": 30, "city": "New York" }'
name=$(echo $json | jq '.name')
age=$(echo $json | jq '.age')
echo $name
echo $age

這段代碼將JSON字符串解析成了name和age兩個變量,并輸出它們的值。其中jq命令用于選取JSON中的某一項,使用單引號將選項字符串包裹。

如果JSON字符串較為復雜,可以使用jq的查詢功能來選取其中的數據。以下是一個示例:

json='{
"people": [
{ "name": "John", "age": 30 },
{ "name": "Mary", "age": 25 },
{ "name": "Bob", "age": 40 }
]
}'
ages=$(echo $json | jq '.people[].age')
echo $ages

這段代碼選取JSON中的people數組中的所有元素的age屬性,以數組的形式輸出。

除了選取數據之外,jq還可以進行多種處理,如轉換、篩選、排序等。以下是一個示例:

json='{
"people": [
{ "name": "John", "age": 30, "city": "New York" },
{ "name": "Mary", "age": 25, "city": "Los Angeles" },
{ "name": "Bob", "age": 40, "city": "Chicago" }
]
}'
# 選取年齡大于30的人,并按照城市排序
result=$(echo $json | jq '.people | map(select(.age >30)) | sort_by(.city)')
echo $result

這段代碼選取了JSON中年齡大于30的人,并按照城市進行了排序。首先使用map函數將篩選出的結果映射為一個新的數組,其中使用了select函數進行篩選。之后使用sort_by函數進行排序,其中傳入的參數為排序的鍵值,這里選擇了城市為鍵值。

總之,jq工具使得Bash中的JSON解析變得更加簡便和靈活。掌握jq的使用方法可以大幅提高Bash腳本的開發效率。