Polecenie Bash JQ

Polecenie Bash JQ
Dane JSON są wykorzystywane do różnych celów. Ale danych JSON nie można łatwo odczytać z pliku JSON za pomocą skryptu BASH, podobnie jak inne normalne pliki. JQ Narzędzie służy do rozwiązania tego problemu. JQ polecenie działa jak sed I Awk polecenie i używa języka specyficznego dla domeny do pracy z danymi JSON. JQ nie jest wbudowanym poleceniem. Musisz więc zainstalować to polecenie do użycia. Jak możesz zainstalować i złożyć wniosek JQ Polecenie do odczytu lub manipulowania danymi JSON jest pokazane w tym samouczku.

Instalacja JQ

Uruchom następujące polecenie, aby zainstalować JQ na Ubuntu.

$ sudo apt-get instaluj JQ

Czytanie danych JSON

Załóżmy, że zadeklarowałeś zmienną JSON o nazwie Jsondata w terminalu i uruchom JQ polecenie z tą zmienną do wydrukowania treści tej zmiennej.

$ Jsondata = '[„book”: „php 7”, „Publication”: „Apress”,
„Book”: „React 16 Essentials”, „Publication”: „Packt”] '
$ echo "$ jsondata" | JQ '.'

Czytanie danych JSON z opcją -c

-Opcja C używa polecenia JQ do wydrukowania każdego obiektu JSON w każdym wierszu. Po uruchomieniu następującego polecenia każdy obiekt zmiennej JSondata zostanie wydrukowany.

$ echo "$ jsondata" | JQ -C '.[] '

Czytanie pliku JSON

Polecenie JQ może być również używane do odczytu pliku JSON. Utwórz plik JSON o nazwie Studenci.JSON z następującą zawartością, aby przetestować następne polecenia tego samouczka.

Studenci.JSON

[[[

„Roll”: 3,
„Nazwa”: „Micheal”,
„Partia”: 29,
„Departament”: „CSE”
,

„Roll”: 55,
„Nazwa”: „Lisa”,
„Partia”: 34,
„Wydział”: „BBA”
,

„Roll”: 12,
„Nazwa”: „John”,
„Partia”: 22,
„Wydział”: „angielski”

]

Uruchom następujące polecenie, aby przeczytać uczniów.plik JSON.

$ jq '.„Studenci.JSON

Czytanie pliku JSON z „|”

Możesz użyć „|” symbol w następujący sposób do odczytania dowolnego pliku JSON.

$ CAT Studenci.JSON | JQ '.'

Czytanie wartości pojedynczych kluczowych

Możesz łatwo odczytać dowolny konkretny obiekt z pliku JSON za pomocą JQ Komenda. W Studenci.JSON, Istnieją cztery obiekty. To są Roll, Nazwa, partia i dział. Jeśli chcesz przeczytać wartość dział Klucz tylko z każdego rekordu, a następnie uruchom JQ polecenie w następujący sposób.

$ jq '.[] | .studenci działu.JSON

Czytanie wielu kluczy

Jeśli chcesz odczytać dwie lub więcej wartości obiektów z danych JSON, wspomnij o nazwach obiektów, oddzielając przecinek (,) w poleceniu JQ. Następujące polecenie odzyska wartości nazwa I dział Klucze.

$ jq '.[] | .nazwa, .studenci działu.JSON

Usuń klucz z danych JSON

JQ Polecenie jest używane nie tylko do odczytu danych JSON, ale także do wyświetlania danych poprzez usunięcie konkretnego klucza. Następujące polecenie wydrukuje wszystkie kluczowe wartości Studenci.JSON plik wykluczając seria klucz. mapa I del funkcja jest używana w JQ polecenie wykonania zadania.

$ jq 'mapa (del (.partia)) „Studenci.JSON

Wartości mapowania

Bez usuwania klucza z danych JSON, możesz użyć funkcji mapy z poleceniem JQ do różnych celów. Wartości liczbowe danych JSON można zwiększyć lub zmniejszyć przez funkcję MAP. Utwórz plik JSON o nazwie Numer.JSON z następującą zawartością, aby przetestować następne polecenia.

[40,34,12,67,45]

Uruchom następujące polecenie, aby dodać 10 z każdą wartością obiektu z Liczby, Json.

Mapa $ JQ (.+10) „Liczby.JSON

Uruchom następujące polecenie, aby odjąć 10 od każdej wartości obiektu z Liczby, Json.

Mapa $ JQ (.-10) „Liczby.JSON

Wyszukiwanie wartości według indeksu i długości

Możesz odczytać obiekty z pliku JSON, określając konkretny indeks i długość. Utwórz plik JSON o nazwie zabarwienie.JSON z następującymi danymi.

[„Czerwony”, „zielony”, „niebieski”, „żółty”, „fioletowy”]

Uruchom następujące polecenie, aby odczytać dwie wartości, zaczynając od trzeciego indeksu kolorów.plik JSON.

$ jq '.[2: 4] kolory.JSON

Możesz określić długość lub indeks początkowy do odczytu danych z pliku JSON. W poniższym przykładzie liczba wartości danych jest podana tylko. W takim przypadku polecenie odczytuje cztery dane z pierwszego indeksu kolorów.JSON.

$ jq '.[: 4] „Kolory.JSON

Możesz określić punkt początkowy tylko bez żadnej wartości JQ polecenie i wartość mogą być dodatnie lub ujemne. Jeśli punkt początkowy jest dodatni, wskaźnik będzie się liczył od lewej strony listy i zaczyna się od zera. Jeśli punkt początkowy jest ujemny, indeks będzie się liczył z prawej strony listy i zaczynając od jednego. W poniższym przykładzie punkt początkowy to -3. Tak więc wyświetlą się trzy ostatnie wartości z danych.

$ jq '.[-3:] „kolory.JSON

Kiedy będziesz pracować z danymi JSON i chcesz przeanalizować lub manipulować danymi zgodnie z Twoimi wymaganiami, polecenie JQ pomoże ci ułatwić zadanie.