# Affichage en colonnes de même taille (tableau)

**URL:** <https://www.debian-fr.org/t/affichage-en-colonnes-de-meme-taille-tableau/57593>\
**Category:** Programmation\
**Created:** [Février 21, 2016, 2:50 UTC](https://www.debian-fr.org/t/affichage-en-colonnes-de-meme-taille-tableau/57593 "2016-02-21T14:50:12Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![SmallFitz](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/s/ec9cab/32.png) [@SmallFitz](https://www.debian-fr.org/u/SmallFitz)\
**Post date:** [Février 21, 2016, 2:50 UTC](https://www.debian-fr.org/t/affichage-en-colonnes-de-meme-taille-tableau/57593/1 "2016-02-21T14:50:12Z")

</div>

Salut,

J’utilise une commande qui affiche sur la sortie standard ceci :

`4d6a430 | 11. [Fix] Buglist. | 2013-05-07 | 2013-05-07
c460034 | Fin d'heure Lundi 07/05 | 2013-05-06 | 2013-05-07
`

Toutes les colonnes ont la même taille, sauf la 2eme, ce qui décale toutes les autres et ne facilite pas la lecture.

J’aimerais donc transformer cette sortie pour qu’elle s’affiche ainsi :

`4d6a430 | 11. [Fix] Buglist. | 2013-05-07 | 2013-05-07
c460034 | Fin d'heure Lundi 07/05 | 2013-05-06 | 2013-05-07
`

Connaissez vous quelque chose (une commande ?) en shell permettant de faire cela ?

Merci d’avance. 😉

---

<div class="post-metadata">

**Author:** ![ggoodluck47](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/g/c67d28/32.png) [@ggoodluck47](https://www.debian-fr.org/u/ggoodluck47)\
**Post date:** [Février 21, 2016, 2:50 UTC](https://www.debian-fr.org/t/affichage-en-colonnes-de-meme-taille-tableau/57593/2 "2016-02-21T14:50:12Z")

</div>

Salut,

> [@](#):
>
> J’utilise une commande qui affiche sur la sortie standard ceci :

Une commande secrète sans doute 🙂

---

<div class="post-metadata">

**Author:** ![lroy](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/l/0ea827/32.png) [@lroy](https://www.debian-fr.org/u/lroy)\
**Post date:** [Février 21, 2016, 2:50 UTC](https://www.debian-fr.org/t/affichage-en-colonnes-de-meme-taille-tableau/57593/3 "2016-02-21T14:50:13Z")

</div>

Salut,

Il existe la bien nommée commande column qui fait à peu près ce que tu souhaites :

```auto
column -s '|' -t input
```

Le truc c’est qu’elle supprime le séparateur en alignant, donc si tu veux le conserver il faut le préfixer par un caractère temporaire :

```auto
cat input | sed 's/|/#|/g' | column -s '#' -t
```

---

<div class="post-metadata">

**Author:** ![SmallFitz](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/s/ec9cab/32.png) [@SmallFitz](https://www.debian-fr.org/u/SmallFitz)\
**Post date:** [Février 21, 2016, 2:50 UTC](https://www.debian-fr.org/t/affichage-en-colonnes-de-meme-taille-tableau/57593/4 "2016-02-21T14:50:13Z")

</div>

[quote=«&nbsp;ggoodluck47&nbsp;»]Salut,

> [@](#):
>
> J’utilise une commande qui affiche sur la sortie standard ceci :

Une commande secrète sans doute 🙂[/quote]  
Curieux ! 😃 La voici :

```auto
$ git log -2 --pretty=format:"%h | %s | %ad | %cd" --date=short
```

[quote=«&nbsp;lroy&nbsp;»]Salut,

Il existe la bien nommée commande column qui fait à peu près ce que tu souhaites :

```auto
column -s '|' -t input
```

Le truc c’est qu’elle supprime le séparateur en alignant, donc si tu veux le conserver il faut le préfixer par un caractère temporaire :

`
cat input | sed 's/|/#|/g' | column -s '#' -t
`[/quote]  
Cool ! Je connaissais pas cette commande, merci !  
J’ai essayé et j’obtiens cette erreur :

`$ maCommande | column -s '|' -t
column: line too long
4d6a430 11. [Fix] Buglist. 2013-05-07 2013-05-07`  
Seule la première ligne est traitée.  
Peut être un problème de fin de ligne…

---

<div class="post-metadata">

**Author:** ![ggoodluck47](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/g/c67d28/32.png) [@ggoodluck47](https://www.debian-fr.org/u/ggoodluck47)\
**Post date:** [Février 21, 2016, 2:50 UTC](https://www.debian-fr.org/t/affichage-en-colonnes-de-meme-taille-tableau/57593/5 "2016-02-21T14:50:13Z")

</div>

Re,

Non pas curieux, bien que …, mais si tu veux avoir des réponses, il est important que tu prennes l’habitude de donner un maximum de renseignements, sans tomber dans l’excès, pour que celui ou ceux qui savent, s’intéressent à ton cas 🙂

---

<div class="post-metadata">

**Author:** ![SmallFitz](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/s/ec9cab/32.png) [@SmallFitz](https://www.debian-fr.org/u/SmallFitz)\
**Post date:** [Février 21, 2016, 2:50 UTC](https://www.debian-fr.org/t/affichage-en-colonnes-de-meme-taille-tableau/57593/6 "2016-02-21T14:50:13Z")

</div>

[quote=«&nbsp;ggoodluck47&nbsp;»]Re,

Non pas curieux, bien que …, mais si tu veux avoir des réponses, il est important que tu prennes l’habitude de donner un maximum de renseignements, sans tomber dans l’excès, pour que celui ou ceux qui savent, s’intéressent à ton cas 🙂[/quote]  
Je comprends.  
Je m’étais dit que ça ne pouvait qu’alourdir le sujet et faire fuir ceux qui ne connaissent pas git, alors que c’est une question qui peut s’appliquer à la sortie de n’importe quelle commande.  
Comme quoi, dur de se mettre à la place du lecteur.

[quote=«&nbsp;SmallFitz&nbsp;»]  
J’ai essayé et j’obtiens cette erreur :

`$ maCommande | column -s '|' -t
column: line too long
4d6a430 11. [Fix] Buglist. 2013-05-07 2013-05-07`  
Seule la première ligne est traitée.  
Peut être un problème de fin de ligne…[/quote]  
Si j’inverse les deux lignes (le plus grande en premier donc), en l’éditant avec vim, ça marche.  
Et si je l’inverse de nouveau avec vim (retour à la situation initiale) ça marche aussi. ![:119](https://www.debian-fr.org/uploads/default/original/1X/0287f377b0e103e172422ffbbe8c639fd3e12c9e.gif "vertige")  
Peut être du au fait qu’en éditant le fichier, j’ai changé les fins de ligne.

J’ai redirigé la sortie de ma commande dans un fichier «&nbsp;/tmp/out&nbsp;» pour mieux voir ce qu’il se passe.  
Si en l’éditant (avec vim) j’insère une nouvelle ligne à la fin du fichier ça marche.  
Si je fais un echo \>\> /tmp/out ça marche aussi.  
Plus qu’à trouver comment insérer une nouvelle ligne à la fin de la sortie d’une commande directement via un pipe…

---

<div class="post-metadata">

**Author:** ![SmallFitz](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/s/ec9cab/32.png) [@SmallFitz](https://www.debian-fr.org/u/SmallFitz)\
**Post date:** [Février 21, 2016, 2:50 UTC](https://www.debian-fr.org/t/affichage-en-colonnes-de-meme-taille-tableau/57593/7 "2016-02-21T14:50:15Z")

</div>

Solution :

```auto

```

`4d6a430 | 11. [Fix] Buglist. | 2013-05-07 | 2013-05-07
c460034 | Fin d'heure Lundi 07/05 | 2013-05-06 | 2013-05-07
`

Explications :

```auto

```

Remplacer tous les pipes encadré d’un espace par un pipe encadré d’un dièse.

```auto

```

Remplacer le fin de ligne de la dernière ligne par un saut de ligne.

```auto

```

Découpe une ligne en colonne à chaque dièse rencontré et affiche un tableau de ces colonnes aux même dimensions.

Edit :

Ajout d’un entête pour nommer les colonnes :

```auto

```

`Hash | Intitulé | Auteur | Commit
         | | |   
4d6a430 | 11. [Fix] Buglist. | 2013-05-07 | 2013-05-07
c460034 | Fin d'heure Lundi 07/05 | 2013-05-06 | 2013-05-07`

---

<div class="post-metadata">

**Author:** ![ggoodluck47](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/g/c67d28/32.png) [@ggoodluck47](https://www.debian-fr.org/u/ggoodluck47)\
**Post date:** [Février 21, 2016, 2:50 UTC](https://www.debian-fr.org/t/affichage-en-colonnes-de-meme-taille-tableau/57593/8 "2016-02-21T14:50:16Z")

</div>

Salut,

Si cette démonstration ne mérite pas de figurer au wiki alors peu de choses le méritent !

---

<div class="post-metadata">

**Author:** ![M3t4linux](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/5daacb/32.png) [@M3t4linux](https://www.debian-fr.org/u/M3t4linux)\
**Post date:** [Février 21, 2016, 2:50 UTC](https://www.debian-fr.org/t/affichage-en-colonnes-de-meme-taille-tableau/57593/9 "2016-02-21T14:50:17Z")

</div>

C’est joli!! ![:041](https://www.debian-fr.org/uploads/default/original/1X/bfe857c9119752799c3eac55ca37a50312c51282.gif "applaudit")

---

<div class="post-metadata">

**Author:** ![Totor](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/t/58f4c7/32.png) [@Totor](https://www.debian-fr.org/u/Totor)\
**Post date:** [Février 21, 2016, 4:48 UTC](https://www.debian-fr.org/t/affichage-en-colonnes-de-meme-taille-tableau/57593/10 "2016-02-21T16:48:55Z")

</div>

même si c’est déjà résolu, j’apporte ma petite contribution afin d’avancer une autre méthode :

```auto
awk -F '|' '{printf "%-8s | %-25s | %-12s | %-11s\n", $1,$2,$3,$4 }' < <(maCommande)
```

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 21, 2016, 4:48 UTC](https://www.debian-fr.org/t/affichage-en-colonnes-de-meme-taille-tableau/57593/11 "2016-02-21T16:48:55Z")

</div>

Pour la comparaison entre les deux. La première va toujours utiliser des colonnes de la bonne taille, alors que la seconde va permettre permet de faire les traitement au fil de l’eau.
