Et je rappelle tout de même que jq peut avoir une syntaxe compliquée, il n’y a aucun besoin en traitement du JSON qui lui soit inatteignable
le problème c’est pas jq, le problème c’est de récupérer la sortie de jq de façon utilisable.
Le json est pas mal foutu, si 2 champs ont une semantique différente, tu les sépares. Mais bash est tellement limité que tu peux pas récupérer plus d’un champ à la fois sans rentrer dans un champ de mines. Utiliser des séparateurs magique (genré \n, ou une virgule, ou que sais je) ne marche pas, parce que ces caractères peuvent être dans ta valeur. A moins que tu veuilles te fader un parseur csv compliant avec toute la spec en bash, ou échapper tes valeurs de partout, pour ensuite les desechapper, mais tu reviens au même problème: c’est affreusement compliqué et casse gueule.
Et surtout, à ce compte là, autant écrire un parseur json en premier lieu. A ben zut, c’est physiquement pas possible à cause du typage. Tu le vois, le problème?
Est-ce qu’on reproche au C ces types natifs limités ? Ou a Perl de ne pouvoir avoir des arrays de pointeurs ? Même en Python les types d’objets « complexes » sont basés sur les trois types de base : scalaire, list et dict (sachant que tout scalaire peut être considéré comme une liste selon le besoin.
Le problème c’est pas les types de bases limites. Enfin, si, c’est un problème. Mais c’est pas mon point. Les tableaux en bash ne peuvent que contenir des chaînes. Pas de null, parce que ça existe pas en bash, pas un autre tableaux, rien. Des tableaux à 2 dimensions, c’est pas particulièrement rare, quand même. A plus forte raison quand les tableaux associatifs sont la seule structure de données que t’as.
Le concept du bash, c’est d’orchestrer des binaires en renvoyant la sortie de l’un vers l’entrée de l’autre, de manipuler de façon légère le système de fichier. Commencer à scripter du Kukes à coup de jq sort très largement de ce champ. Ruby/python feront ça les doigts dans le nez par contre.
T’as déjà eu affaire à du PowerShell ? :)
Sorti de survoler des scripts internes, non. Après, powershell a au moins le bon goût d’être typé, et te donner un output structuré (sans avoir besoin de te prendre les pieds dans le tapis avec sed et awk). Mais surtout, c’est pas le sujet.
Oui, et ? Tu dirais que l’assembleur est obsolète ?
Euh, ben, un petit peu quand même. C’est pas exactement un langage qui a le vent en poupe. C’est une niche de chez niche, quand t’as pas d’autre choix disponible.
[^] # Re: De la pertinence du KISS et d l’anticipation des besoins futurs
Posté par groumly . En réponse au journal Le sophisme du meilleur outil. Évalué à 2.
le problème c’est pas jq, le problème c’est de récupérer la sortie de jq de façon utilisable.
Le json est pas mal foutu, si 2 champs ont une semantique différente, tu les sépares. Mais bash est tellement limité que tu peux pas récupérer plus d’un champ à la fois sans rentrer dans un champ de mines. Utiliser des séparateurs magique (genré \n, ou une virgule, ou que sais je) ne marche pas, parce que ces caractères peuvent être dans ta valeur. A moins que tu veuilles te fader un parseur csv compliant avec toute la spec en bash, ou échapper tes valeurs de partout, pour ensuite les desechapper, mais tu reviens au même problème: c’est affreusement compliqué et casse gueule.
Et surtout, à ce compte là, autant écrire un parseur json en premier lieu. A ben zut, c’est physiquement pas possible à cause du typage. Tu le vois, le problème?
Le problème c’est pas les types de bases limites. Enfin, si, c’est un problème. Mais c’est pas mon point. Les tableaux en bash ne peuvent que contenir des chaînes. Pas de null, parce que ça existe pas en bash, pas un autre tableaux, rien. Des tableaux à 2 dimensions, c’est pas particulièrement rare, quand même. A plus forte raison quand les tableaux associatifs sont la seule structure de données que t’as.
Le concept du bash, c’est d’orchestrer des binaires en renvoyant la sortie de l’un vers l’entrée de l’autre, de manipuler de façon légère le système de fichier. Commencer à scripter du Kukes à coup de jq sort très largement de ce champ. Ruby/python feront ça les doigts dans le nez par contre.
Sorti de survoler des scripts internes, non. Après, powershell a au moins le bon goût d’être typé, et te donner un output structuré (sans avoir besoin de te prendre les pieds dans le tapis avec sed et awk). Mais surtout, c’est pas le sujet.
Euh, ben, un petit peu quand même. C’est pas exactement un langage qui a le vent en poupe. C’est une niche de chez niche, quand t’as pas d’autre choix disponible.