Fold

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Domaine Manipulation de texte / affichage terminal
Commande fold
Contexte Reformatage de lignes longues à largeur fixe
Voir aussi Head (découpage par lignes/octets)

fold reformate un texte en insérant des retours à la ligne pour qu'aucune ligne ne dépasse une largeur donnée (80 caractères par défaut). Contrairement à des outils comme Head, qui découpent un flux par nombre de lignes ou d'octets, fold agit uniquement sur la largeur d'affichage sans supprimer ni tronquer aucun contenu : le texte reste intégralement présent, seulement replié.

Commandes de base

fold fichier.txt          # replie chaque ligne à 80 caractères (largeur par défaut)
fold -w 40 fichier.txt     # replie à une largeur de 40 caractères
fold -s fichier.txt        # coupe aux espaces plutôt qu'en plein mot
fold -w 40 -s fichier.txt  # combine largeur personnalisée et coupe aux espaces

Options utiles

  • -w N — définit la largeur de coupe à N caractères (80 par défaut).
  • -s — coupe au dernier espace avant la limite plutôt qu'en plein mot, ce qui évite de couper un mot en deux.
  • -b — compte en octets plutôt qu'en colonnes d'affichage, utile avec des caractères multi-octets ou des tabulations.

Cas d'usage

Reformater une longue ligne pour l'affichage terminal

Pratique pour relire une ligne de log, une valeur de configuration ou une sortie de commande trop longue pour la largeur du terminal, sans dépendre du retour à la ligne automatique de l'émulateur :

cat access.log | fold -w 120 -s

Générateur de mot de passe ou de jeton aléatoire

Un idiome classique combine /dev/urandom, tr et fold pour produire rapidement des chaînes aléatoires de longueur fixe, sans dépendance externe :

cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 10 | head -n 4

Le principe : /dev/urandom fournit un flux d'octets aléatoires, tr -dc 'a-zA-Z0-9' filtre ce flux pour ne garder que les caractères alphanumériques (supprime tout le reste), fold -w 10 découpe le résultat en lignes de 10 caractères, et head -n 4 n'en garde que les 4 premières — ce qui donne 4 chaînes de 10 caractères prêtes à servir de mot de passe temporaire ou de jeton.

⚠️ Cette méthode convient pour des besoins courants (mot de passe temporaire, jeton de test) mais pour un usage cryptographique sensible, préférer un outil dédié comme openssl rand ou pwgen, qui garantissent mieux l'entropie et évitent le filtrage potentiellement biaisé de tr.

Voir aussi

  • Head — découper un flux par nombre de lignes ou d'octets, approche complémentaire (head -c pour une largeur fixe sans retour à la ligne)