Développement

xmlstarlet – manipuler du XML en shell

A l'époque où le JSON est roi, ce billet fait un peu tâche, non ? Pourtant le XML est toujours là, plutôt côté serveur, bien discret. Et même s'il n'est plus aussi populaire que le JSON, nous sommes parfois amené à le manipuler. Pour tout ce qui est transformation de document, vous pouvoir aller voir du côté du bien connu XSL. Mais si vous souhaitez seulement explorer un XML pour y extraire simplement et rapidement des informations dans un script…
Lire d'avantage
Développement

join multi-fichiers CSV

Récemment, j'ai dû assembler le contenu de plusieurs fichiers CSV en effectuant une jointure sur une clé unique pour chaque ligne. Contexte Les fichiers se composent de 2 colonnes. La première est une clé et la seconde une valeur quelconque. Les clés ne sont pas toutes présentes dans chaque fichier. Les lignes de ces fichiers peuvent être triées par ordre alphabétique sur la clé. Pour information, le séparateur de champ utilisé est la virgule. De plus, les fichier ne contiennent…
Lire d'avantage
Développement

MSYS – éviter l’évaluation des arguments comme des chemins

Si vous êtes sous MS Windows et que vous faites du Bash ou autres scripts en ligne de commandes, vous utilisez sûrement MSYS. Dans ce cas, n'avez-vous pas rencontré quelques difficultés avec des paramètres commençant par le caractère "/" ? Par exemple, avec Docker : $ docker run -w /tmp ubuntu ls -la docker: Error response from daemon: The working directory 'C:/Users/pnom/AppData/Local/Temp' is invalid. It needs to be an absolute See 'C:\Program Files\Docker Toolbox\ run --help'. Celà vient du fait…
Lire d'avantage
Développement

jq – manipuler du JSON en shell

JSON par-ci, JSON par-là. Le format de données JSON a conquis le monde du développement. Il a l'avantage d'être lisible par les humains et il est supporté par la plupart des langages des programmation (via un composant externe ou non). Cela en fait un format d'échange parfait ! Parfait ? Êtes-vous vraiment sûr ? Avez-vous déjà essayé de manipuler du JSON dans un shell ? En cherchant un peu, il est possible de trouver deux projets : jq : un…
Lire d'avantage
Développement

Bash – set -xe pour un développement plus rapide

Lorsque l'on écrit des scripts shell de provision, leur validation peut se révéler très longue. Et l'analyse de l'erreur initiale n'est pas toujours facile. Pourtant, le bash propose la commande set avec 2 options qui peuvent grandement augmenter votre productivité : -e : sort du script dès qu'une erreur est rencontrée (retour différent de 0) -x : affiche la commande exécutée avec ses arguments Ainsi donc, en phase de développement, vous pouvez commencer vos scripts ainsi : #! /bin/bash set…
Lire d'avantage