Wiem, że mogę użyć czegoś takiego jak cat test.txt | pr -w 80
zawijanie wierszy do szerokości 80 znaków, ale to stawia dużo miejsca na górze i na dole drukowanych linii i nie działa poprawnie w niektórych systemach
Jak najlepiej wymusić zawijanie pliku tekstowego z długimi liniami o określonej szerokości?
Punkty bonusowe, jeśli nie możesz rozdzielić słów.
fold -s -w 80 email.txt | sed 's/^.*$/> &/'
fold
łamie adresy URL, podczas gdyfmt
nie.Oprócz tego
fold
spójrz nafmt
.fmt
próbuje inteligentnie wybrać podział linii, aby tekst wyglądał dobrze. Nie łamie długich słów, raczej zawija tylko spacje. Łączy także sąsiednie linie, co jest dobre dla prozy, ale złe dla plików dziennika lub innego sformatowanego tekstu.źródło
1) zapewniona stała szerokość linii z podziałem słów:
2) zapewniona stała szerokość linii z nadzwyczajnym dzieleniem słów (słowo jest łamane tylko wtedy, gdy jest zbyt duże, aby zmieścić się w linii):
3) obiecująca stała szerokość linii bez podziału słowa (jeśli słowo jest zbyt duże, aby zmieściło się w linii, nadal pozostaje takie, jakie jest, więc w końcu niektóre linie mogą być większe niż potrzebujesz):
źródło
Innym (mniej znanym) narzędziem, które robi to, co chcesz, jest
wrap
z GNU Talkfilters :Również (poza tematem):
dodaj
-t
podczas wywoływania,pr
aby pominąć nagłówki / przyczepy:źródło
Więcej opcji formatowania można znaleźć na stronie
par
- http://www.nicemice.net/par/źródło
działało dla mnie, ponieważ muszę podzielić każdą linię do 100 znaków
źródło