JQ
From HackerNet
jq är en command-line JSON parser. Som kan användas precis lika enkelt som sed,awk och grep används för text.
Installation
Krävs att du har EPEL repot aktiverat.
sudo yum install jq
sudo apt-get install jq
Användning
Skaffa lite exempel JSON via Hackernets API där vi söker på alla sidor som innehåller ordet Cisco:
curl 'https://hackernet.se/api.php?action=query&list=search&srsearch=cisco&format=json'
Pretty-printa JSON koden så den blir läsbar:
curl 'https://hackernet.se/api.php?action=query&list=search&srsearch=cisco&format=json' | jq '.'
Filtrera ut vilka sidor du hitta:
curl 'https://hackernet.se/api.php?action=query&list=search&srsearch=cisco&format=json' | jq '.query.search[].title'
Filtrera ut titeln och exempel texten från sidan:
curl 'https://hackernet.se/api.php?action=query&list=search&srsearch=cisco&format=json' | jq '.query.search[] | {titel: .title, text: .snippet}'
Sortera sidorna efter lägst antal ord:
curl 'https://hackernet.se/api.php?action=query&list=search&srsearch=cisco&format=json' | jq '.query.search | sort_by(.wordcount) | .[].title'
Skapa en URL till varje sida:
curl 'https://hackernet.se/api.php?action=query&list=search&srsearch=cisco&format=json' | jq '.query.search[] | ("https://hackernet.se/w/"+""+.title)'
Tips'N'Tricks
Använd jqplay för att enkelt skriva jq filter.