Commande Linux unexpand expliquée pour les débutants (avec des exemples)

Travailler sur la ligne de commande Linux nécessite d’apprendre à effectuer rapidement certaines tâches répétitives. L’une de ces tâches, dans laquelle tu pourrais te retrouver tôt ou tard, consiste à convertir des blancs en tabulations ou vice-versa. Dans ce tutoriel, nous allons parler d’un utilitaire de ligne de commande – surnommé unexpand – qui te sera d’une grande aide dans de telles situations.

Mais avant de commencer, il est bon de mentionner que tous les exemples de cet article ont été testés sur une machine Ubuntu 16.04 LTS.

Commande Linux unexpand

La commande unexpand te permet de convertir les espaces en tabulations. Voici sa syntaxe :

unexpand [OPTION]... [FILE]...

Et voici comment la page de manuel la décrit :

Convert blanks in each FILE to tabs, writing to standard output. With no FILE, or when FILE is -, read standard input.

Voici quelques exemples sous forme de questions-réponses qui devraient te donner une bonne idée du fonctionnement de la commande unexpand.

Q1. Comment utiliser la commande unexpand?

Suppose que tu as un fichier dont le texte contient des tabulations. Pour une raison quelconque, tu as converti ces tabulations en espaces à l’aide de la commande expand, et maintenant tu veux convertir à nouveau les espaces en tabulations, alors dans ce cas, tu peux utiliser la commande unexpand.

Par exemple :

unexpand file1

L’outil produit la sortie convertie sur stdout. Pour l’enregistrer, tu peux donc le rediriger vers un fichier quelconque. Par exemple :

unexpand file1 > file2

Il est bon de mentionner que par défaut, cet outil ne fonctionne que sur les blancs initiaux. Tu peux utiliser l’option -a pour indiquer à l’utilitaire que tu veux convertir tous les espaces/blancs en tabulations.

Q2. Comment forcer unexpand à convertir uniquement les blancs initiaux/de tête ?

L’outil propose une option qui le force à convertir uniquement les blancs ou espaces initiaux (même si l’option -a est présente). L’option en question est –first-only.

unexpand --first-only -a file1 > file2

Q3. Que fait l’option -t ?

L’option -t a plusieurs rôles. Elle accepte soit un seul nombre, soit une liste de nombres séparés par des virgules. Lorsque tu passes un seul nombre (disons ‘n’), la commande unexpand s’assure de compresser les espaces du fichier en tabulations toutes les ‘n’ positions.

Par exemple, pour que l’outil compresse les blancs dans des tabulations toutes les 3 positions, utilise cette option de la manière suivante :

unexpand -t 3 file1 > file2

D’un autre côté, si cette option est associée à une liste de nombres séparés par une commande, l’outil place les tabulations à ces positions spécifiques.

unexpand -t 1,2,3 file1 > file2

Q4. Comment faire pour que unexpand lise les entrées à partir de STDIN ?

C’est assez facile – il suffit d’exécuter la commande sans aucun nom de fichier en entrée (utilise ctrl+D pour indiquer à l’utilitaire que tu as terminé).

Voici ce dont je parle :

unexpand

Conclusion

Selon le type de travail que tu fais, la commande unexpand peut être d’une grande aide. Dans ce tutoriel, nous avons abordé la majorité des options de ligne de commande que propose cet outil. Pour en savoir plus, rends-toi sur sa page de manuel.

Vous aimerez aussi...