bat : une alternative à la commande cat, mais en mieux.
bat : a cat clone with wings

bat : une alternative à la commande cat, mais en mieux.

Si il y a une commande dont on use et abuse sous Linux c’est bien cat. Que ce soit pour afficher le contenu d’un fichier de texte brut ou concaténer plusieurs fichiers (qui est sa fonctionnalité première), il est difficile de s’en passer.

bat, une alternative à la commande cat, développée en langage Rust, dispose en plus de la coloration syntaxique, de la pagination (oui il remplace aussi less) et de l’intégration de Git. De quoi sérieusement nous rendre la ville meilleure dans le terminal. Dans cet article nous passerons en revue son installation et son utilisation.

En quoi « bat » est une alternative à la commande « cat » ?

Du point de vue de la concaténation, il n’y a pas vraiment de différence, c’est principalement lorsqu’on utilise bat pour afficher du contenu textuel que ses particularités sautent aux yeux.

Voici un exemple d’affichage d’un fichier de code Python avec cat:

Et maintenant le même fichier affiché avec bat:

Comme vous le remarquerez bat, par défaut, ajoute de la coloration syntaxique, numérote les lignes de code et ajoute même un entête à l’affichage. Nous pouvons bien évidemment changer ces comportements en passant des options à la ligne de commande, nous y reviendrons plus tard.

Installation de « bat »

L’installation de bat dépend fortement de la distribution que vous utilisez. Il est toutefois disponible pour la plupart d’entre elles, que ce soit Ubuntu, Debian, Arch Linux, Rocky Linux etc.

Ubuntu / Debian
sudo apt install bat
Arch Linux
sudo pacman -S bat
Fedora
sudo dnf install bat
REHL / Rocky Linux / CentOS / AlmaLinux …
# Installation dans l'environnement utilisateur
sudo dnf install cargo
cargo install --locked bat
echo "PATH=$HOME/.cargo/bin:$PATH" >> ~/.bashrc
REHL / Rocky Linux / CentOS / AlmaLinux …
# Installation au niveau du système
# Attention: Ceci implique d'installer cargo et bat pour l'utilisateur root
sudo -s
dnf install cargo
cargo install --locked bat
ln /root/.cargo/bin/bat /usr/bin/bat
exit 

Utilisation de « bat »

Petite particularité si vous utilisé Debian ou Ubuntu, la commande sera batcat.

Debian / Ubuntu
batcat [OPTIONS] [FILE]...
batcat <SUBCOMMAND>
Autres distributions
bat [OPTIONS] [FILE]...
bat <COMMAND>

Principales options de « bat »

OptionDescription
-pAffichage sans décoration
-ppAffichage sans décoration et sans pagination
-l <langage>Spécifier le langage de coloration syntaxique
-nAfficher uniquement les numéros de lignes, pas d’autre décoration
-r <N:M>N’afficher que les lignes de N à M
-hAfficher l’aide

Cette liste n’est pas exhaustive, pour plus d’informations, nous pouvons faire appel à l’option -h.

Exemples d’utilisation de « bat »

Dans les exemples ci-dessous, vous pouvez remplacer bat par batcat si vous êtes sous Ubuntu ou Debian.

Affichage simple d’un fichier

Affichage du contenu d’un fichier
bat fichier
utilisation simple de bat

Affichage d’un sélection de lignes

Affichage d’une sélection de lignes
bat -r N:M fichier
affichage des lignes de 10 à 13 de .bashrc

Affichage sans décoration

Affichage sans décoration
bat -p fichier
affichage sans décoration avec bat

Afficher plusieurs fichiers

Afficher plusieurs fichiers
bat fichier_1 fichier_2 ... fichier_n
Affichage de plusieurs fichiers

Concaténer plusieurs fichier pour l’affichage

Concaténer pour l’affichage
bat -p fichier_1 fichier_2 ... fichier_n
concaténer plusieurs fichier à l'affichage

Rediriger la concaténation dans un fichier des destination

Concaténer et rediriger le résultat dans un nouveau fichier
bat fichier_1 fichier_2 ... fichier_n > destination
concaténation et redirection vers un nouveau fichier

Conclusion

Difficile de se passer de bat une fois qu’on y a goûté. A lui seul il remplace les commandes cat et less, puis qu’il assure aussi la pagination, et il fait encore mieux puisqu’il propose de la coloration syntaxique mais aussi l’intégration de git (notamment pour afficher les différence entre un fichier et l’état du dernier commit. En somme c’est une petite pépite.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.