Maîtriser paste, tr et column en ligne de commande
Apprenez à reformater des fichiers texte avec paste, tr et column pour produire des sorties tabulaires propres en ligne de commande Linux.

- Difficulté
- Facile
Quand un fichier texte est mal délimité, trop compact ou difficile à lire, quelques commandes Unix suffisent souvent à le remettre en forme. Le trio paste, tr et column est particulièrement utile pour transformer rapidement des données simples en sorties tabulaires propres.
Dans ce tutoriel, vous allez manipuler de petits fichiers texte depuis le terminal Linux. L’objectif est pratique : partir de données peu lisibles, les réorganiser, puis les afficher clairement sans passer par un tableur.
Prérequis
- Savoir ouvrir un terminal Linux.
- Connaître les commandes de base comme
cat,printfet la redirection>. - Disposer d’un système où
pasteettrsont installés.columnest souvent disponible aussi, mais sa présence dépend de l’environnement.
Matériel nécessaire
- Un terminal Linux
- Les commandes paste, tr et column
- Un éditeur de texte ou la commande printf
Étapes
Créer des fichiers de test simples
Commencez par créer un dossier de travail, puis deux fichiers très simples contenant des prénoms et des rôles. Exécutez :
mkdir -p ~/demo-paste-tr-column cd ~/demo-paste-tr-column printf 'Alice\nBob\nChloé\n' > prenoms.txt printf 'Admin\nSupport\nDev\n' > roles.txtAffichez ensuite leur contenu pour vérifier que chaque valeur occupe bien une ligne. Utilisez par exemple :
cat prenoms.txt cat roles.txtFusionner des fichiers colonne par colonne avec paste
Assemblez maintenant les deux fichiers en une seule sortie tabulaire. Lancez :
paste prenoms.txt roles.txtVous obtenez deux colonnes, séparées par une tabulation. Pour enregistrer le résultat, redirigez la sortie vers un nouveau fichier :
paste prenoms.txt roles.txt > utilisateurs.tsvChanger le séparateur produit par paste
Par défaut,
pasteinsère une tabulation entre les colonnes. Si vous préférez un autre séparateur, utilisez l’option-d:paste -d ':' prenoms.txt roles.txt paste -d ',' prenoms.txt roles.txtCette méthode est utile pour produire rapidement une sortie plus proche d’un format attendu par un autre outil. Vous pouvez ensuite enregistrer le résultat dans un fichier dédié.
Assembler plusieurs lignes en une seule avec paste
pastene sert pas seulement à coller plusieurs fichiers côte à côte. Il peut aussi relire un seul fichier et regrouper plusieurs lignes sur une même ligne avec l’option-s:paste -s -d ',' prenoms.txtVous obtenez une seule ligne contenant les prénoms séparés par des virgules. C’est pratique pour produire rapidement une liste compacte à partir d’un fichier vertical.
Fabriquer un fichier mal délimité à nettoyer

Créez maintenant un fichier volontairement peu lisible afin de pratiquer
tretcolumn. Exécutez :printf 'nom,service,poste\nAlice,infra,admin\nBob,support,technicien\nChloé,dev,backend\n' > equipe.csvAffichez-le avec
cat. Le contenu est correct, mais sa lecture reste peu confortable dans un terminal brut, surtout si les longueurs varient.Remplacer des caractères avec tr

Utilisez
trpour remplacer les virgules par des tabulations. Lancez :tr ',' '\t' < equipe.csvLa sortie passe par l’entrée standard, sans modifier le fichier d’origine. Pour conserver le résultat, redirigez-le vers un autre fichier :
tr ',' '\t' < equipe.csv > equipe.tsvSupprimer des caractères inutiles avec tr
trsait aussi supprimer des caractères avec l’option-d. Créez un petit exemple, puis nettoyez-le :printf 'Alice;\nBob;\nChloé;\n' > noms-bruit.txt tr -d ';' < noms-bruit.txtVous obtenez les mêmes lignes sans le caractère final superflu. Cette étape est utile quand un fichier contient un bruit répétitif simple à enlever avant un affichage plus propre.
Compacter des espaces répétés avec tr
Les fichiers texte récupérés depuis un copier-coller contiennent parfois plusieurs espaces consécutifs. Vous pouvez les réduire avec l’option
-s, qui compresse les répétitions d’un même caractère :printf 'nom service poste\nAlice infra admin\n' > espaces.txt tr -s ' ' < espaces.txtLe résultat garde les espaces, mais supprime leurs répétitions inutiles. Cela peut simplifier une étape de nettoyage avant un affichage final.
Afficher un tableau lisible avec column

À partir du fichier CSV créé plus haut, produisez un affichage tabulaire lisible avec
column. Exécutez :column -s ',' -t equipe.csvL’option
-sindique le séparateur d’entrée, et-tdemande un alignement en colonnes. Le contenu devient bien plus confortable à lire dans le terminal.Chaîner tr et column dans un pipeline
Combinez maintenant les commandes pour nettoyer puis aligner une sortie en une seule ligne de travail. Par exemple :
tr ',' '\t' < equipe.csv | column -tIci,
trremplace les virgules par des tabulations, puiscolumnaligne le résultat. Le pipeline est pratique quand vous voulez tester une transformation sans créer immédiatement un nouveau fichier.Ajouter un en-tête avant de formater la sortie
Pour rendre un affichage encore plus clair, ajoutez un en-tête avant de passer le tout à
column. Vous pouvez utiliser un groupe de commandes :({ printf 'nom,service,poste\n'; cat equipe.csv; }) | column -s ',' -tCette approche est utile si votre source n’a pas encore de première ligne descriptive. Le résultat reste temporaire tant que vous ne redirigez pas la sortie vers un fichier.
Enregistrer un résultat propre pour le réutiliser
Quand la sortie vous convient, enregistrez-la dans un fichier distinct plutôt que d’écraser la source. Par exemple :
column -s ',' -t equipe.csv > equipe-table.txtVous obtenez une version lisible pour consultation dans le terminal ou partage rapide. Garder la source intacte permet de refaire la transformation avec d’autres options si nécessaire.
Comparer plusieurs approches sur le même fichier
Terminez en comparant trois affichages du même contenu. Essayez successivement :
cat equipe.csv tr ',' '\t' < equipe.csv column -s ',' -t equipe.csvVous verrez clairement la différence entre afficher brut, convertir des séparateurs et aligner visuellement des colonnes. Cette comparaison aide à choisir la bonne commande selon le besoin réel.
Erreurs fréquentes & dépannage
Confondre transformation et affichage.
columnsert surtout à présenter proprement une sortie dans le terminal. Pour changer des caractères dans les données, utilisez plutôttrou un autre outil adapté.Utiliser un séparateur déjà présent dans les données. Avec
paste -doucolumn -s, un mauvais séparateur rend la lecture ambiguë. Inspectez toujours quelques lignes avant de choisir.Écraser un fichier source par mégarde. Préférez rediriger vers un nouveau nom de fichier. Cela permet de refaire vos essais sans perdre le contenu d’origine.
Oublier que
tragit caractère par caractère. Si votre problème concerne une structure plus complexe que de simples remplacements, le résultat peut ne pas correspondre à votre attente.Supposer que
columnest disponible partout. Selon le système ou l’environnement, la commande peut manquer. Vérifiez sa présence avant de construire votre routine autour d’elle.
Astuces & pour aller plus loin
Testez toujours vos pipelines directement à l’écran avant de rediriger vers un fichier. Vous verrez immédiatement si le séparateur ou l’alignement est correct.
Créez de petits fichiers d’exemple avec
printfpour comprendre une commande isolément. Une fois le comportement compris, appliquez-la à vos fichiers réels.Gardez en tête une logique simple :
pasteassemble,trremplace ou supprime,columnaligne l’affichage. Cette règle suffit à choisir rapidement le bon outil dans beaucoup de cas débutants.
Questions fréquentes
À quoi sert paste par rapport à cat ?
cat affiche le contenu des fichiers les uns à la suite des autres. paste, lui, combine des lignes correspondantes sur une même ligne pour former des colonnes.
Est-ce que tr modifie directement le fichier d’entrée ?
Non, tr écrit son résultat sur la sortie standard. Pour conserver la transformation, il faut rediriger la sortie vers un autre fichier.
Quand utiliser column ?
Utilisez column quand vous voulez rendre une sortie plus lisible dans le terminal, surtout avec des données séparées par un caractère régulier comme la virgule ou la tabulation.
Puis-je utiliser paste avec plus de deux fichiers ?
Oui, paste peut recevoir plusieurs fichiers en arguments. Il ajoute alors une colonne par fichier, ligne par ligne.
Pourquoi mon tableau reste-t-il irrégulier après tr -s ' ' ?
Parce que cette commande compacte seulement les répétitions d’espaces. Si vos colonnes dépendent d’un mélange d’espaces et de tabulations, il faut d’abord vérifier la nature réelle des séparateurs.
Conclusion
Avec paste, tr et column, vous disposez d’un petit kit très efficace pour remettre en forme des fichiers texte depuis le terminal. Ces commandes sont simples, complémentaires et suffisantes pour de nombreux besoins de lecture, de nettoyage léger et de présentation tabulaire.
Le plus important est de bien distinguer leur rôle : assembler des lignes, transformer des caractères, puis aligner l’affichage. En les testant sur de petits fichiers d’exemple, vous gagnerez vite des réflexes utiles pour manipuler des données textuelles au quotidien.