web-dev-qa-db-fra.com

Comment encapsuler du texte à une certaine taille de colonne?

Je sais que je peux utiliser quelque chose comme cat test.txt | pr -w 80 pour encapsuler les lignes sur 80 caractères de large, mais cela met beaucoup d'espace en haut et en bas des lignes imprimées et cela ne fonctionne pas correctement sur certains systèmes

Quelle est la meilleure façon de forcer un fichier texte avec de longues lignes à être enveloppé à une certaine largeur?

Points bonus si vous pouvez l'empêcher de casser des mots.

152
cwd

Tu recherches

fold -w 80 -s text.txt
  • -w indique la largeur du texte, où 80 est standard.
  • -s dit de se briser dans les espaces, et non dans les mots.

C'est la manière standard , mais il existe d'autres systèmes qui nécessitent "-c" au lieu de "-w".

188
Rainer Bendig

En plus de fold, jetez un œil à fmt. fmt essaie de choisir intelligemment les sauts de ligne pour donner une belle apparence au texte. Il ne casse pas de longs mots, il ne s'enroule que par des espaces. Il rejoindra également les lignes adjacentes, ce qui est bon pour la prose mais mauvais pour les fichiers journaux ou tout autre texte formaté.

54
Jonathan

1) largeur de ligne fixe assurée avec rupture de mot:

fold -w 80 <text.txt

2) largeur de ligne fixe garantie avec une rupture de mot extraordinaire (un mot n'est cassé que s'il est trop grand pour tenir dans une ligne):

fold -sw 80 <text.txt

3) promettant une largeur de ligne fixe sans aucune rupture de mot (si Word est trop grand pour tenir dans une ligne, il est toujours laissé tel quel, donc finalement certaines lignes peuvent être plus grandes que ce dont vous avez besoin):

fmt -w 80 <text.txt
16
user2683246

Un autre outil (moins connu) qui fait ce que vous voulez est wrap from GNU Talkfilters :

wrap -w 80 < textfile

Aussi (hors sujet):

mais cela met beaucoup d'espace en haut et en bas des lignes imprimées

ajouter -t lors de l'appel de pr pour omettre les en-têtes/remorques:

   -t, --omit-header
          omit page headers and trailers
11
don_crissti

Et pour plus d'options de formatage, regardez par - http://www.nicemice.net/par/

5
sendmoreinfo