Fish Shell:
Travailler avec JSON

Comment faire :

Le Fish Shell, en lui-même, ne dispose pas d’utilitaires intégrés pour l’analyse et la génération de JSON. Cependant, il s’intègre sans problème avec des outils tiers comme jq pour le traitement du JSON. jq est un processeur JSON en ligne de commande puissant et polyvalent qui vous permet de découper, filtrer, mapper et transformer des données structurées avec un langage simple et expressif.

Analyser du JSON avec jq

Pour analyser un fichier JSON et extraire des données à l’aide de jq :

# En supposant que vous avez un fichier JSON nommé 'data.json' avec le contenu : {"name":"Fish Shell","version":"3.4.0"}
cat data.json | jq '.name'
# Exemple de sortie
"Fish Shell"

Génération de JSON avec jq

Créer un contenu JSON à partir de variables de shell ou de sorties :

# Créer un objet JSON à partir de variables
set name "Fish Shell"
set version "3.4.0"
jq -n --arg name "$name" --arg version "$version" '{name: $name, version: $version}'
# Exemple de sortie
{
  "name": "Fish Shell",
  "version": "3.4.0"
}

Filtrer les collections JSON

Supposons que nous avons un tableau JSON d’objets dans un fichier nommé versions.json :

[
  {"version": "3.1.2", "stable": true},
  {"version": "3.2.0", "stable": false},
  {"version": "3.4.0", "stable": true}
]

Pour filtrer ce tableau pour seulement les versions stables :

cat versions.json | jq '.[] | select(.stable == true) | .version'
# Exemple de sortie
"3.1.2"
"3.4.0"

Les exemples fournis démontrent la puissance de l’intégration de jq avec Fish Shell pour les opérations JSON. Utiliser de tels outils enrichit l’expérience shell, en faisant un environnement redoutable pour la manipulation des formats de données modernes.