Skip to content

jq Tarifleri açıklaması

Gün gün kullanılan jq filtreleri, işe göre gruplanmış: bir değere uzanmak, filtreleyip seçmek, koleksiyonlarla çalışmak, değerleri ve dizeleri dönüştürmek, yeni bir nesneye veya diziye biçimlendirmek, yolları yerinde güncellemek, mantıkla dallanmak ve ileri düzey indirgeme yürütmek, ayrıca girdiyi ve çıktıyı biçimlendiren komut satırı bayrakları. Her satır, filtreyi ürettiği sonuçla eşleştirir.

jq bir filtredir: stdin üzerindeki JSON'u okur, borularla ayrılmış ifadelerden oluşan bir boru hattı çalıştırır ve stdout'a JSON yazar. Nokta geçerli değerdir; her şey onun üzerine kurulur. Öğrenmenin en hızlı yolu, gerçek veriyi aşağıdaki tariflerden geçirmek ve çıktıyı izlemektir. Şöyle çalıştırın: jq 'filtre' dosya.json veya curl ... | jq 'filtre'.

Referans tablosu · 65 kayıt
65 of 65 rows
Erişim
Girdinin tamamı, düzgün biçimlendirilmiş.
Bir anahtardaki değer, ya da iç içe anahtarlar.
Adı özel karakter içeren bir anahtardaki değer.
Bir dizinin ilk öğesi (negatif sayı sondan sayar).
Bir dizinin her öğesi, ya da bir nesnenin her değeri, kendi satırında.
Anahtardaki değer, ya da null; anahtar eksikken hata vermeden.
Filtreleme ve seçme
Koşul doğruysa girdi değişmeden, değilse hiçbir şey.
İfadeyi dizinin her öğesine uygula ve sonuçları topla.
Bir nesnenin sıralanmış anahtar adları, ya da değerleri, dizi olarak.
Bir dizinin veya dizenin uzunluğu, ya da bir nesnedeki anahtar sayısı.
Yalnızca yaşı 18'den büyük öğeler, tek dizi olarak.
Koleksiyonlar
En az bir öğe, ya da her öğe, truthy olduğunda ya da bir filtreden geçtiğinde doğru.
k anahtarı nesnede varsa doğru; in aynı testi anahtar tarafından yürütür.
İlk öğe, son öğe, ya da f'nin yalnızca ilk n çıktısı.
Bir dizideki en küçük, ya da en büyük değer.
0'dan n'ye kadar sayılar, her biri kendi çıktısı olarak.
İç içe dizilerin tek düz diziye indirgenmesi.
x, girdinin bir yerinde geçiyorsa doğru; inside rolleri ters çevirir.
f'yi alttan yukarı her değere uygula, sonra girdiyi bütünüyle yeniden kur.
Dönüştürme
Her öğeden yalnızca price alanını içeren bir dizi.
Bir sayı dizisinin toplamı, ya da bir nesne dizisinin birleşimi.
Bir değeri dizeye, ya da sayısal bir dizeyi sayıya zorla.
Girdiyi JSON dizesi ya da base64 olarak kodla.
Küçük harfe çevrilmiş bir dize.
Dizeler
İçine ifadenin değeri yerleştirilmiş bir dize.
Desenin her eşleşmesinin, ya da yalnızca ilkinin yerine s koy.
Bir dizeyi ayırıcıdan diziye böl, ya da bir diziyi tek dizeye birleştir.
Bir dizeyi bir desene karşı sına, ya da eşleşmeleri ve adlandırılmış yakalamaları çıkar.
Bir öneki, ya da soneki, yalnızca varken kaldır.
Doğru ya da yanlış: dize s ile başlar, ya da biter.
Büyük harfe çevrilmiş bir dize.
Bir dizinin CSV satırı, TSV satırı ya da tırnaklanmış shell argümanları olarak kodlanması.
Yeniden biçimlendirme
Yalnızca girdinin id ve name alanlarını içeren yeni bir nesne.
Her öğenin adını içeren bir dizi.
Bir nesneden {key, value} nesnelerinden oluşan bir dizi.
{key, value} nesnelerinden bir diziden kurulan bir nesne.
Öğelerin cat alanına göre alt dizilere gruplanması.
Bir alana göre sırala, ya da her ayrı id için tek öğe tut.
Güncelleme ve yollar
Anahtardaki değeri, üzerinde f çalıştırarak güncelle.
Anahtardaki değerin üzerine v yaz.
count'taki değere n ekle, yerinde.
Dizi olarak verilen yollardaki değerleri oku, yaz ya da sil.
Denetim ve mantık
c doğruysa a, değilse b; daha fazla dal için elif.
f'yi çalıştır; f başarısız olursa yerine hata iletisiyle g'yi çalıştır.
msg taşıyan bir hatayla dur; bir try yakalamadıkça.
Hiç çıktı yok; o dal sonuçlardan sessizce kaybolur.
Doğru ve yanlış değerleri birleştir, ya da birini tersle.
İleri düzey
Tüm diziyi tek bir akan toplama katla.
reduce gibi, ama her adımdan sonra durumu yayar, yalnızca sonuncuyu değil.
Sonraki girdi, ya da kalan tüm girdi, filtre ortasında çekilir.
JSON metni olarak bir değer, ya da JSON metninin geri ayrıştırılmış değeri.
Base64 metninin orijinal dizeye geri çözülmesi.
Yapının derinliklerinde atama; eksik düzeyleri yol boyunca oluşturur.
a, null ya da false değilse a; değilse b (bir varsayılan değer).
Bir anahtarı çıkarılmış girdi.
Girdideki her yol, anahtarlardan oluşan bir dizi olarak, tepeden aşağı.
Değişkenler ve CLI
$name'i filtre içinde kullanılabilir bir shell dizesi olarak tanımla.
$name'i ham JSON'dan tanımla; sayılar, boolelar, diziler ya da nesneler için.
$name'i bir JSON dosyasının tüm içeriği olarak tanımla.
Dize sonuçları tırnaksız ve kaçışsız, ham olarak yazdır.
Her sonucu girintisiz, tek satırda kompakt yazdır.
Filtreyi null üzerinde bir kez çalıştır; çıktıyı sıfırdan kurmak için.
Filtre çalışmadan önce tüm girdiyi tek bir diziye oku.
Çıkış kodunu son çıktıdan ayarla; böylece shell betikleri sonucu sınayabilir.
Filtre içinde okunan bir ortam değişkeninin değeri.