題主是否想詢(xún)問(wèn)“l(fā)inux用什么將文本批量轉(zhuǎn)化為sql”?shell腳本加開(kāi)源jq命令。linux可以使用shell腳本加開(kāi)源jq命令批量完成json文件轉(zhuǎn)sql文件。linux是一個(gè)操作系統(tǒng)最底層的核心,這個(gè)核心可以管理整個(gè)計(jì)算機(jī)的硬件,使計(jì)算機(jī)的硬件完整的運(yùn)作起來(lái),并等待使用者輸入指令。
為甕安等地區(qū)用戶(hù)提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及甕安網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都做網(wǎng)站、成都網(wǎng)站建設(shè)、甕安網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專(zhuān)業(yè)、用心的態(tài)度為用戶(hù)提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶(hù)的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
linux常用命令如下:
1、查看內(nèi)核版本:uname -a。
2、控制臺(tái)-》圖形界面:init 5或者startx。
3、圖形界面-》控制臺(tái): init3或者直接注銷(xiāo)。
4、如何查看ip地址:ifconfig。
5、配置ip:ifconfig eth0 ip地址。
6、重啟:reboot 或者 shutdown -r now。
7、普通用戶(hù)切換到系統(tǒng)用戶(hù):su。
8、注銷(xiāo)用戶(hù)指令:logout。
linux的學(xué)習(xí)技巧:
如果你想系統(tǒng)的學(xué)習(xí)Linux,你必需清楚的認(rèn)識(shí)到這一點(diǎn)。如果你真正想系統(tǒng)的學(xué)習(xí)linux,想用Linux有所作為,那么請(qǐng)忘記Windows的思維方式,思想性的轉(zhuǎn)變比暫時(shí)性的技術(shù)提高更有用, 而思想上的改變往往是受到我們行動(dòng)所影響的,有不懂的問(wèn)題就自己思考,查資料, 實(shí)在不會(huì)再去找別人的電腦去查,這樣就加深了我每次對(duì)問(wèn)題的理解,慢慢感受和習(xí)慣Linux的操作方式。
JSON 是一種數(shù)據(jù)表示格式,用于在應(yīng)用程序的不同層之間存儲(chǔ)和傳輸數(shù)據(jù);它將數(shù)據(jù)存儲(chǔ)在鍵:值對(duì)中。在文章中,我們將學(xué)習(xí)使用 JQ? 命令 在 shell ?中操作和處理 JSON 數(shù)據(jù)。
如何安裝JQ 命令
在 Centos 8中使用下面命令安裝jq:
[root@localhost ~]# dnf -y install jq
語(yǔ)法
現(xiàn)在我們可以開(kāi)始使用 JQ 命令,因?yàn)樗呀?jīng)成功安裝在我們的系統(tǒng)上,但首先,讓我們看一下 JQ 命令的語(yǔ)法:
jq [options]? [file...]
jq [options] --args? [strings...]
jq [options] --jsonargs? [JSON_TEXTS...]
JQ 命令可以用多種不同的方式使用;它可以直接用于 JSON 文件,也可以結(jié)合其他幾個(gè)命令來(lái)解釋 JSON 數(shù)據(jù)。JQ 命令可以與不同的過(guò)濾器一起使用,例如“.”、“|”、“,”或“.[]”過(guò)濾器來(lái)組織 JSON 數(shù)據(jù)。
JQ 命令還采用不同的選項(xiàng)作為參數(shù),例如 --tab、--stream、--indent n、--unbuffered 和 -L 目錄選項(xiàng)。JQ 命令的語(yǔ)法乍一看可能很復(fù)雜,但閱讀整篇文章后您就會(huì)熟悉它。
如何使用 JQ 命令組織 JSON 數(shù)據(jù)
JQ 命令過(guò)濾器最簡(jiǎn)單和常用的特性。它們用于在將 JSON 數(shù)據(jù)打印到標(biāo)準(zhǔn)輸出時(shí)對(duì)其進(jìn)行組織和美化。
在這個(gè)例子中,我們有一個(gè)名為 employee.json 的 JSON 文件,我們需要將數(shù)據(jù)輸出到標(biāo)準(zhǔn)輸出:
{"workers":{"name": "John Brooks","id": "003"}}
我們可以使用 cat 命令來(lái)顯示數(shù)據(jù):
[root@localhost ~]# cat employee.json
{"workers":{"name": "John Brooks","id": "003"}}
使用 cat 命令打印到標(biāo)準(zhǔn)輸出的數(shù)據(jù)是無(wú)組織和混亂的。我們可以使用 JQ 命令和“.”來(lái)組織這些數(shù)據(jù),使用.來(lái)篩選:
[root@localhost ~]# jq '.' employee.json
{
"workers": {
"name": "John Brooks",
"id": "003"
}
}
現(xiàn)在,數(shù)據(jù)變得更有條理、色彩豐富且更易于理解。從 API 訪問(wèn)數(shù)據(jù)時(shí)尤其需要此過(guò)濾器;API 中存儲(chǔ)的數(shù)據(jù)可能非常無(wú)組織且令人困惑。
如何使用 JQ 命令訪問(wèn)屬性
.字段過(guò)濾器和 JQ 命令可用于訪問(wèn) shell 中的對(duì)象屬性。
如果我們只想訪問(wèn)單個(gè)屬性并將其打印到標(biāo)準(zhǔn)輸出,那么我們可以使用.字段運(yùn)算符。例如,要訪問(wèn)工人的屬性,我們可以使用以下命令:
[root@localhost ~]# jq '.workers' employee.json
{
"name": "John Brooks",
"id": "003"
}
我們還可以使用.字段運(yùn)算符訪問(wèn)屬性中存在的項(xiàng)目。要訪問(wèn)工人屬性中的名稱(chēng)項(xiàng),我們將使用:
[root@localhost ~]# jq '.workers.name' employee.json
"John Brooks"
如何使用 JQ 命令訪問(wèn)數(shù)組項(xiàng)
我們還可以使用?.[]?運(yùn)算符訪問(wèn)和輸出 JSON 文件中數(shù)組中存在的元素。對(duì)于這個(gè)例子,我們將修改我們的 JSON 文件,添加下面內(nèi)容:
[{"name": "John Brooks","id": "003"},{"name": "Randy Park","id": "053"},{"name": "Todd Gray","id": "009"}]
查看一下employee.json文件:
[root@localhost ~]# cat employee.json
[{"name": "John Brooks","id": "003"},{"name": "Randy Park","id": "053"},{"name": "Todd Gray","id": "009"}]
要輸出 JSON 文件中存在的所有數(shù)組,我們將運(yùn)行以下命令:
[root@localhost ~]# jq '.[]' employee.json
{
"name": "John Brooks",
"id": "003"
}
{
"name": "Randy Park",
"id": "053"
}
{
"name": "Todd Gray",
"id": "009"
}
要僅輸出第二個(gè)數(shù)組,我們可以通過(guò)以下方式修改上述命令:
[root@localhost ~]# jq '.[1]' employee.json
{
"name": "Randy Park",
"id": "053"
}
請(qǐng)記住,數(shù)組從索引 0 開(kāi)始的。
我們還可以使用?.字段?運(yùn)算符訪問(wèn)數(shù)組中存在的屬性。例如,如果我們想訪問(wèn)第三個(gè)數(shù)組中的 name 屬性,那么我們將運(yùn)行以下命令:
[root@localhost ~]# jq '.[2].name' employee.json
"Todd Gray"
類(lèi)似地,要訪問(wèn)數(shù)組中的所有名稱(chēng)屬性,我們可以執(zhí)行以下命令:
[root@localhost ~]# jq '.[].name' employee.json
"John Brooks"
"Randy Park"
"Todd Gray"
總結(jié)
JQ 命令用于將 JSON 數(shù)據(jù)轉(zhuǎn)換為更易讀的格式并將其打印到? Linux ?上的標(biāo)準(zhǔn)輸出。JQ 命令是圍繞過(guò)濾器構(gòu)建的,過(guò)濾器用于從 JSON 文件中僅查找和打印所需的數(shù)據(jù)。
問(wèn)題:shell下使用jq比較兩個(gè)json是否相等,第一個(gè)難點(diǎn)是KEY需要排序,第二個(gè)難點(diǎn)是array需要排序
Jq 本身提供-S參數(shù)使key進(jìn)行排序
不過(guò)無(wú)法處理array.
jq提供了walk功能可以對(duì)所有的key進(jìn)行遍歷,同時(shí)他的example1就展示了如何對(duì)array進(jìn)行排序,但apt中提供的jq不具有這個(gè)功能。
在github上找到了可以在jq1.5中使用walk的方法
最后寫(xiě)成了這個(gè)樣子,
本文名稱(chēng):linux命令jq的簡(jiǎn)單介紹
瀏覽地址:http://vcdvsql.cn/article32/ddiposc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、標(biāo)簽優(yōu)化、網(wǎng)站建設(shè)、微信公眾號(hào)、品牌網(wǎng)站建設(shè)、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)