Je sais que je peux utiliser quelque chose comme cat test.txt | pr -w 80
pour relier des lignes de 80 caractères au maximum, mais cela laisse beaucoup d'espace en haut et en bas des lignes imprimées et cela ne fonctionne pas correctement sur certains systèmes.
Quel est le meilleur moyen 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.
fold -s -w 80 email.txt | sed 's/^.*$/> &/'
fold
casse les urls, alorsfmt
que non.En plus de
fold
, jetez un oeil àfmt
.fmt
essaie de choisir intelligemment les sauts de ligne pour que le texte soit bon. Cela ne casse pas les mots longs, mais plutôt que les espaces. Il joindra également les lignes adjacentes, ce qui est bon pour la prose mais non pour les fichiers journaux ou tout autre texte formaté.la source
1) largeur de ligne fixe assurée avec brisure de mot:
2) largeur de ligne fixe assurée avec une rupture de mots extraordinaire (un mot n'est cassé que s'il est trop gros pour tenir dans une ligne):
3) largeur de ligne fixe prometteuse sans rupture de mot (si le mot est trop volumineux pour tenir dans une ligne, il reste toujours tel quel, de sorte que certaines lignes peuvent avoir une taille supérieure à celle dont vous avez besoin):
la source
Un autre outil (moins connu) qui fait ce que vous voulez est à
wrap
partir de GNU Talkfilters :Aussi (hors sujet):
ajouter
-t
lors de l'appelpr
d'omettre les en-têtes / remorques:la source
Et pour plus d'options de formatage, regardez
par
- http://www.nicemice.net/par/la source
a travaillé pour moi car j'ai besoin de scinder chaque ligne jusqu'à 100 caractères
la source