pr
- pr – klasyczny filtr do paginacji i składu plików tekstowych przed wydrukiem lub podglądem (np. w
less
/lpr
). - Potrafi: dodawać nagłówek/stopkę z datą/nazwą pliku i numerem strony, dzielić na kolumny, ustawiać szerokość strony, wcięcia, liczby wierszy, wybierać zakres stron.
- Występuje w GNU coreutils (Linux) oraz w BSD / macOS (składnia bardzo podobna; drobne różnice opcji).
Składnia
Dział zatytułowany „Składnia”pr [opcje] [PLIK...]
- Wejściem jest tekst (z pliku lub stdin), wyjściem — sformatowany tekst (na stdout), który można przekierować do
less
/lpr
. - Warianty: układ w N kolumnach, łączenie wielu plików równolegle (po kolumnie), wybór zakresu stron.
Parametry
Dział zatytułowany „Parametry”Parametr | Opis |
---|---|
+P[:Q] | Zacznij od strony P i opcjonalnie zakończ na Q (np. +3:5 ). |
-N | Ułóż w N kolumnach (np. -2 , -3 ). |
-a, --across | Kolumny wypełniane po wierszach (w poprzek), domyślnie „w dół”. |
-m, --merge | Scal wiele plików: każdy plik w osobnej kolumnie. |
-t, --omit-header | Bez nagłówków/stopek (goła treść, przydatne do potoków). |
-F, -f, --form-feed | Oddzielaj strony znakiem FF (form feed), zamiast pustych linii. |
-h "NAGŁÓWEK" | Własny nagłówek zamiast nazwy pliku/czasu. |
-l NUM | Długość strony w wierszach (domyślnie ok. 66). |
-w NUM | Szerokość strony w znakach (domyślnie ok. 72). |
-o NUM | Lewy margines (wcięcie) o NUM spacjach. |
-s[ZNAK] | Separator między kolumnami (domyśl. spacje). Np. -s| . |
-d, --double-space | Podwójne odstępy między wierszami. |
-n[SEP[DIG]] | Numeruj wiersze; opcj. separator SEP (np. : ) i szerokość DIG (np. -n:4 ). |
-NNUM | Ustaw początkowy numer wiersza (z -n ). |
-J | Nie dziel długich wierszy — zawijaj bez rozbijania słów (w niektórych implementacjach BSD). |
Uwaga: Zestaw opcji i domyślne wartości mogą się różnić między GNU coreutils a BSD/macOS/BusyBox. Sprawdź
man pr
na danej platformie.
Przykłady użycia
Dział zatytułowany „Przykłady użycia”# 1) Układ w 2 kolumnach, własny nagłówek, szerokość 100, podgląd w lesspr -2 -h "Raport tygodniowy" -w 100 raport.txt | less# Efekt: czytelny podgląd, węższe kolumny mieszczą się na ekranie.
# 2) Druk tylko stron 3–5 długiego plikupr +3:5 długi_plik.txt | lpr# Efekt: do drukarki trafi tylko zakres stron.
# 3) Złączenie dwóch plików równolegle w kolumnach (porównanie wersji)pr -m -t wersja1.txt wersja2.txt | less -S# Efekt: kolumna 1 = plik1, kolumna 2 = plik2; bez nagłówków, wygodne do diffu „na oko”.
# 4) Numerowanie wierszy z separatorem dwukropka i szerokością 4 cyfrpr -n:4 -w 90 README.md | less# Efekt: numer linii w polu 4‑znakowym (np. " 12:").
# 5) Kolumny w poprzek i niestandardowy separator pionowej kreskipr -3 -a -s'|' -w 120 dane.txt | less -S# Efekt: wiersze rozkładane w poprzek kolumn; kolumny oddzielone '|'.
# 6) Wcięcie 4 spacje i rozdział stron znakiem form feed (dla klasycznych drukarek)pr -o 4 -F dokument.txt > sformatowany.txt# Efekt: każda nowa strona zaczyna się od FF; przydatne dla niektórych sterowników/lpr.
- Domyślne nagłówki: zawierają zwykle datę/godzinę, nazwę pliku (lub
stdin
) i numer strony. - Różne systemy, różne drobiazgi: macOS/BSD mogą mieć dodatkowe/nieco inne opcje (np. zachowanie
-J
). GNUpr
bywa bardziej przewidywalny w skryptach na Linuksie. - Szerokość/łamanie: Przy zbyt małej
-w
część linii zostanie zawinięta. Do poziomego przewijania w podglądzie użyjless -S
. - Kolumny a dane tabelaryczne:
pr
jest do składu tekstu, nie do justowania CSV. Do tabel użyjcolumn -t
,rs
,paste
lub narzędzi tekstowych. - Druk: Typowy potok do drukarki:
pr [opcje] plik | lpr
. Do PDF użyj systemowego „wydrukuj do PDF”.
Najczęściej spotykane błędy i jak je naprawić
Dział zatytułowany „Najczęściej spotykane błędy i jak je naprawić”Błąd / Komunikat | Przyczyna | Rozwiązanie | |
---|---|---|---|
pr: illegal option -- <x> / unrecognized option | Różnice implementacji (GNU vs BSD) lub literówka | Sprawdź man pr na swoim systemie; dobierz właściwy odpowiednik lub usuń nieobsługiwaną opcję. | |
page width too narrow / ucięte linie | Za małe -w dla treści/kolumn | Zwiększ -w , zmniejsz liczbę kolumn, wyłącz numerowanie, użyj less -S . | |
Nieprawidłowy zakres +P:Q | Zły format lub P>Q | Podaj liczby całkowite, zachowaj P ≤ Q ; użyj samego +P aby zacząć od strony P. | |
Dziwny układ kolumn | Brak -a albo niewłaściwy separator | Dodaj -a dla wypełniania w poprzek lub `-s' | '` jako separator. |
Brak polskich znaków w wydruku | Zły font/kodowanie w ścieżce drukowania | Upewnij się, że LC_CTYPE /LANG i sterownik drukarki obsługują UTF‑8; ewentualnie użyj innego filtra. |
Linki i źródła
Dział zatytułowany „Linki i źródła”- man pr (GNU coreutils) – strona podręcznika.
- GNU Coreutils – pr – oficjalny podręcznik online.
- FreeBSD pr(1) – wariant *BSD/macOS.
- BusyBox pr – implementacja w BusyBox (opcje mogą się różnić).