Actuellement, quand je veux imprimer un joli fichier json en utilisant jq , j'utilise:
cat file.json | grep jq .
Pourtant, je m'attendrais à ce que jq
accepte un nom de fichier comme argument sans avoir à recourir à cat
.
La page de manuel indique:
jq [options ...] filtre [fichiers ...]
... Par défaut, jq lit un flux d'objets JSON (séparés par des espaces) depuis stdin. Un ou plusieurs fichiers peuvent être spécifiés, auquel cas jq lira les entrées de ceux-ci à la place.
Pourtant en cours d'exécution:
jq file.json
échoue en lançant des erreurs de compilation que les clés ne sont pas définies.
Comment suis-je censé ajouter le fichier lors de l'exécution de jq
?
jq . file.json
est ce que je cherchais. Je ne savais pas que le .
est un filtre et non un espace réservé pour le contenu canalisé:
.
Le filtre le plus simple (et le moins intéressant) absolu est
.
. Il s'agit d'un filtre qui prend son entrée et la produit inchangée en sortie.
Et la page de manuel indique clairement que le filtre est un argument requis.