Za pomocą polecenia przykładowego
man apropos > outputfile
generowany jest plik tekstowy, który zawiera sformatowaną manstronę apropos(z pewnymi niewielkimi różnicami w odniesieniu do man aproposbezpośrednio drukowanych na ekranie, takich jak pogrubione znaki).
Chciałbym jednak ręcznie ustawić maksymalną szerokość linii generowanego pliku wyjściowego, aby wszystkie akapity były wyrównane do tej szerokości.
manstrony są tworzone przez groff: na przykład próbowałem umieścić .ll 50przed akapitem oryginalnego .gz manźródłowego pliku tekstowego, ale jest to trywialne, jeśli muszę pracować na kilku manstronach. Ponadto nie wszystkie znaki są rozpoznawane:
apropos.1:45: warning: can't find character with input code 195
apropos.1:45: warning: can't find character with input code 168
apropos.1:47: warning: can't find character with input code 178
apropos.1:131: warning: can't find character with input code 169
Zastanawiam się więc, czy istnieje bardziej prosta metoda. Jak zmodyfikować maksymalną szerokość linii podczas tworzenia outputfile? Czy jest jakieś konkretne polecenie?
Edytuj :
(Wszystkie poniższe uwagi dotyczą Ubuntu 18.04: Nie mogę ich więcej testować w poprzednich wersjach, w tym 14.04 powyższego pytania.)
Jeśli chodzi o tymczasowe jednowierszowe rozwiązanie, jeśli MANWIDTHnie zostało jeszcze wyeksportowane z wartością niestandardową, nie ma między nimi żadnej różnicy
$ MANWIDTH=60 man apropos > outputfile
i
$ COLUMNS=60 man apropos > outputfile
Pierwszy z nich MANWIDTHjest jednak zasadniczo lepszy.
Edycja 2 (nie ściśle związana z pytaniem):
Aby zamiast tego ustawić stałe ustawienie szerokości, które ma być zastosowane do każdego wydruku strony, konieczne jest wyeksportowanie pożądanej wartości zmiennej. Z:
$ export MANWIDTH=60
# zero or more additional lines
$ man apropos > outputfile
man aproposzostanie wydrukowany z tą samą szerokością, niezależnie od zmiany rozmiaru okna terminala. Zamiast,
$ export COLUMNS=60
# zero or more additional lines
$ man apropos > outputfile
zapewni taki sam wynik jak poprzednio tylko wtedy, gdy okno terminala nie zostanie przeskalowane pomiędzy exporti man <page> > outputfile.
man man2.6.7.1). Strona podręcznika jest w języku włoskim i jest to UTF-8. Co rozumiesz przez ustawienia regionalne?
locale? i locale charmap?
localewyjście: LANG=it_IT.UTF-8 LANGUAGE= LC_CTYPE="it_IT.UTF-8" LC_NUMERIC="it_IT.UTF-8" locale charmapwyjście:UTF-8
lessponieważ TERMnie jest ustawiony. Miałem na myśli env -i LANG=it_IT.UTF-8 man apropos > output(lub | head).
input codebłędów195 168może być w UTF-8. Czy strona podręcznika jest w języku angielskim? Jaka jest implementacja twojego człowieka? Jakie są twoje ustawienia regionalne?