expand et unexpand
100%

Text-Fu · Leçon 10

expand et unexpand

Découvrez comment les taquets de tabulation contrôlent la conversion entre tabulations et espaces.

Une tabulation mémorise un déplacement jusqu'au prochain taquet, pas un nombre fixe d'espaces visibles. Sa largeur dépend de la colonne courante et des taquets. expand et unexpand convertissent tabulations et espaces en tenant compte de ces positions.

Convertir les tabulations en espaces

expand remplace chaque tabulation par les espaces nécessaires pour atteindre le taquet approprié et écrit sur stdout :

$ expand sample.txt

Par défaut, les taquets reviennent toutes les 8 colonnes. Une tabulation en colonne 1 ne devient donc pas le même nombre d'espaces qu'en colonne 6.

Avec les réglages par défaut, comment expand remplace-t-il une tabulation ?

Choisir les taquets de tabulation

-t NUMBER place les taquets à l'intervalle choisi :

$ expand -t 4 sample.txt

GNU expand accepte aussi une liste de positions séparées par des virgules. -i limite la conversion aux tabulations précédant le premier caractère non blanc.

Quelle commande convertit les tabulations avec des taquets toutes les quatre colonnes ?

Enregistrer le résultat en sécurité

expand ne modifie pas son entrée. Redirigez vers un autre chemin :

$ expand sample.txt > result.txt

N'utilisez pas expand sample.txt > sample.txt : le shell tronque la destination avant que expand ne la lise. Vérifiez le fichier séparé avant de remplacer volontairement l'original.

Quelle commande sauvegarde le résultat sans tronquer sample.txt avant sa lecture ?

Convertir les espaces en tabulations

unexpand remplace les espaces admissibles par des tabulations en préservant l'alignement. Par défaut, GNU unexpand ne traite que les blancs initiaux :

$ unexpand result.txt

Utilisez -a pour considérer les blancs appropriés dans toute la ligne :

$ unexpand -a result.txt

-a considère les blancs dans toute la ligne. La conversion dépend des colonnes et des taquets ; elle ne remplace pas simplement chaque groupe de huit espaces. Utilisez -t 4 si le fichier suit une autre convention.

Sans -a, quels espaces GNU unexpand considère-t-il normalement ?

Quelle option demande à GNU unexpand de considérer aussi les blancs après le premier caractère non blanc ?

Sans fichier, les deux commandes lisent stdin. Une conversion aller-retour peut ne pas reconstruire le choix original entre espaces et tabulations, même si l'alignement visible reste identique.

Leçon terminée

Vous avez terminé expand et unexpand

Vous savez convertir tabulations et espaces tout en préservant l'alignement.

  • Développer une tabulation jusqu'au prochain taquet.

  • Régler les taquets avec -t.

  • Écrire dans un fichier distinct avant tout remplacement.

  • Convertir par défaut les blancs initiaux avec unexpand.

  • Employer -a pour considérer toute la ligne.

Conservez votre progression

Créez un compte gratuit pour enregistrer cette leçon et continuer sur n'importe quel appareil.

Créer un compte gratuit
Leçon Suivante
Retour à Text-Fu