URL: https://linuxfr.org/news/dispositio-une-bibliotheque-shell-posix-pour-afficher-des-tables-de-donnees Title: Dispositio, une bibliothèque Shell POSIX pour afficher des tables de données Authors: seraf1 Florent Zara et Benoît Sibaud Date: 2025-08-13T11:28:43+02:00 License: CC By-SA Tags: Score: 4 Si, comme moi, vous avez eu à reprendre et adapter du script shell pour afficher des tableaux avec mise en forme dans le terminal ou dans des scripts générant des syntaxes Markdown ou Textile (Génération automatique de ticket Redmine), alors vous serez sans doute intéressé par _Dispositio_ (licence Apache v2). _Dispositio_ est un script shell conforme POSIX qui permet l’affichage des tables de données provenant de fichiers CSV, JSON et YAML dans le terminal. Il offre un formatage avancé, un support des couleurs, et peut-être utilisé comme un outil en ligne de commande autonome ou comme une bibliothèque shell pour la génération de tableaux. ---- [Site web de Dispositio](https://spn109.fr/dispositio) [Sources de Dispositio sur Codeberg ](https://codeberg.org/spn109/dispositio) [Journal à l’origine de la dépêche](https://linuxfr.org/users/seraf1/journaux/dispositio-une-bibliotheque-shell-posix-pour-afficher-des-tables-de-donnees) ---- ### Fonctionnalités clés - Formats d’entrée multiples (CSV, YAML et JSON) - Utilisation en CLI ou en bibliothèque (dans ce cas, utilisation de fonctions `dispositio_add_*` pour ajouter des colonnes, lignes ou cellules) - Formatage de la sortie (couleurs, mise en forme, style de texte et alignements) - Sortie en format Terminal, Markdown (avec CSS, non compatible Github) et Textile (Redmine) ### Exemples avec ce fichier JSON ```json { "title": [ "JSON", "Essai" ], "display": "top", "color": "", "align": "center", "columns": [ { "title": [ "Header1", "" ], "color": "red", "align": "" }, { "title": [ "Header2", "Essai" ], "color": "", "align": "" }, { "title": [ "Header3", "" ], "color": "", "align": "" } ], "rows": [ { "title": [], "color": "green", "align": "", "valign": "top", "separator": 1, "cells": [ { "lines": [ "Row1", "Cell1", "essai" ], "color": "", "align": "" }, { "lines": [ "", "Row1 - Cell2", "" ], "color": "", "align": "" }, { "lines": [ "", "Row1 - Cell3", "" ], "color": "", "align": "" } ] }, { "title": [], "color": "", "align": "", "separator": 0, "cells": [ { "lines": [ "Row2 - Cell1" ], "color": "", "align": "" }, { "lines": [ "Row2 - Cell2" ], "color": "", "align": "" }, { "lines": [ "Row2 - Cell3" ], "color": "", "align": "" } ] } ] } ``` #### Sortie Terminal  #### Sortie Markdown ```md