Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
os:jq [2022/01/26 11:38]
127.0.0.1 external edit
os:jq [2024/02/11 14:01] (current)
tomas [Konverze TXT na JSON]
Line 6: Line 6:
  
  
 +==== jq přepínače ====
 +-r ... zobrazí jen hodnotu, nedává do uvozovek\\
  
-cat soubor.json | [[https://stedolan.github.io/jq/manual/|jq]] -r '.automatic.filesystem | map([.mount, .kb_used, .kb_size] )' | jq -r '.[] | @csv' ... prevede json do csv\\ +==== jq příkazy ==== 
-cat soubor.json | jq -r '.rows | map([.name, .chef_environment, .automatic.os, ('`date +%s`' - .automatic.ohai_time | tostring)] | join(", ")) | join("\n")' ... dalsi zpusob prevodu do csv\\ +%%select(.pole == "hodnota")%% ... selekce, výběr, filtr = zobrazí jen hodnoty splňující podmínku\\ 
-echo '[{"a": "b"}, {"a": "c"}]' | jq '.[] | .a' ... vypise "b" a "c"\\ +map(.hodnota) = .[] | .hodnota ... vnoží se do seznamu\\ 
-echo '[{"a": "b"}, {"a": "c"}]' | jq '.[] | {text: .a}' ... vypise {"text": "b"}, {"text": "c"}\\ +tonumber\\ 
-echo '[{"a": "b"}, {"a": "c"}]' | jq '[.[] | {text: .a}]' ... vypise [{"text": "b"}, {"text": "c"}]\\ +tostring\\ 
-cat az_vm_list-d_live.json | jq -r '.[] | select(.storageProfile.osDisk.osType == "Windows") | "\(.name)\t ... vybirani jen urcitych zaznamu, formatovani na vystup\\+[:4]\\ 
 +==== Příklady ==== 
 +%%cat soubor.json | [[https://stedolan.github.io/jq/manual/|jq]] -r '.automatic.filesystem | map([.mount, .kb_used, .kb_size] )' | jq -r '.[] | @csv'%% ... prevede json do csv\\ 
 +%%cat soubor.json | jq -r '.rows | map([.name, .chef_environment, .automatic.os, ('`date +%s`' - .automatic.ohai_time | tostring)] | join(", ")) | join("\n")'%% ... dalsi zpusob prevodu do csv\\ 
 +%%echo '[{"a": "b"}, {"a": "c"}]' | jq '.[] | .a'%% ... vypise "b" a "c"\\ 
 +%%echo '[{"a": "b"}, {"a": "c"}]' | jq '.[] | {text: .a}' ... vypise {"text": "b"}, {"text": "c"}%%\\ 
 +%%echo '[{"a": "b"}, {"a": "c"}]' | jq '[.[] | {text: .a}]' ... vypise [{"text": "b"}, {"text": "c"}]%%\\ 
 +%%cat az_vm_list-d_live.json | jq -r '.[] | select(.storageProfile.osDisk.osType == "Windows") | "\(.name)\t'%% ... vybirani jen urcitych zaznamu, formatovani na vystup\\
    
  
Line 18: Line 27:
  
 ====Spojovani JSON souboru==== ====Spojovani JSON souboru====
-jq -s add soubor1.json soubor2.json ... spoji/slouci 2 a vice json souboru. Respektuje strukturu objektu\\ +%%jq -s add soubor1.json soubor2.json ... spoji/slouci 2 a vice json souboru. Respektuje strukturu objektu%%\\ 
-jq -s . ... spoji vstupujici objekdy do pole (1. objekt pole = 1. objekt/soubor, 2. objekt pole = 2. objekt/soubor, ...)\\ +%%jq -s . ... spoji vstupujici objekdy do pole (1. objekt pole = 1. objekt/soubor, 2. objekt pole = 2. objekt/soubor, ...)%%\\ 
-jq '.[]' soubor1.json soubor2.json ... spoji json objekty. [{soubor1.objekt1}], [{soubor1.objekt2}], ... [{soubor2.objekt1}], ...\\ +%%jq '.[]' soubor1.json soubor2.json ... spoji json objekty. [{soubor1.objekt1}], [{soubor1.objekt2}], ... [{soubor2.objekt1}], ...%%\\ 
-jq -s .  soubor1.json soubor2.json ... spoji json objekty. [[{soubor1.objekt1}, {soubor1.objekt2}, ...], [{soubor2.objekt1}, ...]]\\ +%%jq -s .  soubor1.json soubor2.json ... spoji json objekty. [[{soubor1.objekt1}, {soubor1.objekt2}, ...], [{soubor2.objekt1}, ...]]%%\\ 
-jq --slurp "[.[] | .[]" 1.json 2.json ... spoji json objekty. [{soubor1.objekt1}, {soubor1.objekt2}, ... {soubor2.objekt1}, ...]\\+%%jq --slurp "[.[] | .[]" 1.json 2.json ... spoji json objekty. [{soubor1.objekt1}, {soubor1.objekt2}, ... {soubor2.objekt1}, ...]%%\\
  
 ====Konverze typu==== ====Konverze typu====
-echo '[{"number": 1, "string": "one"}]' | jq '.[] | .string + ": " + (.number|tostring)' ... prevede objekt .number na text\\ +%%echo '[{"number": 1, "string": "one"}]' | jq '.[] | .string + ": " + (.number|tostring)'%% ... prevede objekt .number na text\\ 
-echo '[{"number": 1, "string": "one"}]' | jq -r '.[] | [ .string, .number|tostring ] | join(": ")' ... dalsi moznost toho sameho\\+%%echo '[{"number": 1, "string": "one"}]' | jq -r '.[] | [ .string, .number|tostring ] | join(": ")'%% ... dalsi moznost toho sameho\\
  
-K 
 ====Konverze TXT na JSON==== ====Konverze TXT na JSON====
-jq '. | split("\n") | map( {value: .} ) | {rules: .} ' -R -s rules.txt ... vytvori json strukturu, kde .rules je pole objektu s klicem "value" a hodnotou daneho radku TXT souboru\\ +%%jq '. | split("\n") | map( {value: .} ) | {rules: .} ' -R -s rules.txt%% ... vytvori json strukturu, kde .rules je pole objektu s klicem "value" a hodnotou daneho radku TXT souboru\\ 
-jq '. | split("\n") | map( split("\t") | {value: .[0], tag: .[1]} ) | {rules: .} ' -R -s rules.txt ... z txt kazdy radek rozdeli podle tabulatoru a zapise to json (1. hodnota jde do .rules.value, druha do .rules.key\\+%%jq '. | split("\n") | map( split("\t") | {value: .[0], tag: .[1]} ) | {rules: .} ' -R -s rules.txt%% ... z txt kazdy radek rozdeli podle tabulatoru a zapise to json (1. hodnota jde do .rules.value, druha do .rules.key\\