Artur Pyszczuk's blog...

"Always forgive your enemies - nothing annoys them so much."
Oscar Wilde
/home/linux/commands/fold/

fold - Zwijanie tekstu do ustalonej szerokości

Polecenie fold może okazać się pomocne, jeśli chcemy, aby tekst, który mamy w danym pliku został wyświetlony (tudzież zapisany) w ściśle określonej szerokości. Użycie tego programu wygląda następująco.

$ fold [OPCJE] [PLIK]

Użycie tego polecenia bez dodatkowych opcji, może być w ogóle nie zauważone (jeśli tekst w pliku ma szerokość nie większą niż 80 kolumn. Jeśli szerokość przekracza 80 kolumn, to tekst zostanie dopasowany do szerokości 80 - domyślnie). Nie mniej jednak, jeśli dodamy odpowiednie opcje, wynik polecenia jest bardzo ciekawy, czasem potrzebny. Podstawowe użycie pokazane zostało na niniejszym rysunku.

Polecenie fold
Rys. 1. Polecenie fold


Dajmy na to przykład, chcemy, aby tekst, który widzimy na rys. 1 został wyświetlony, lecz szerokość jego była równa 30 kolumn. W sumie nic trudnego, jeśli znamy polecenie fold i opcję -w.

Polecenie fold
Rys. 2. Polecenie fold - ustalona szerokość


Na powyższym rysunku widać, że wiersz ma określoną szerokość (30 kolumn). Ok, a co zrobić, jeśli chcielibyśmy, aby szerokość była ustawiona na odpowiednią wartość, lecz wyraz nie został "ucięty" w połowie i kończony w wierszu kolejnym, lecz cały został wyświetlony w nowym wierszu? Opcja -s "łamie" wiersz przy spacji, który znajduje się najbliżej końca (szerokość wiersza).

Polecenie fold
Rys. 3. Polecenie fold - ustalona szerokość, łamanie wiersza na spacji


Została jeszcze jedna opcja, a mianowicie -b, która to odpowiedzialna jest za dostosowanie szerokości na podstawie liczby bajtów, nie kolumn. Dla naszego przykładowego tekstu, nie będzie żadnej różnicy. Różnica jest wtedy, gdy w tekście znajdują się np. tabulacje, lub polskie znaki, które zajmują jedną kolumnę, lecz większą liczbę bajtów. Na rysunku poniżej pokazano banalnie prosty program z języka C, w którym widać różnicę, pomiędzy ilością bajtów, a ilością kolumn, jeśli chodzi o szerokość wyświetlanego tekstu. Wynik pierwszego polecenia traktuje tabulację jako kilka wierszy. W drugim przypadku, liczone są bajty, tabulacja jest liczona jako pojedynczy bajt, dlatego też dwie instrukcje, część instrukcji printf, oraz cała instrukcja return zostały wydrukowane w taki właśnie sposób.

Polecenie fold
Rys. 4. Polecenie fold - ustalona szerokość na podstawie liczby bajtów



Wiecej informacji na temat programu fold znajdziesz w podreczniku systemowym man.
Wpisujac w konsoli man fold

Wiecej informacji na temat programu fold znajdziesz również w programie info.
Wpisujac w konsoli info coreutils 'fold invocation'

Some rights reserved 2010 - 2015 Artur Pyszczuk

| Strona Główna | Kontakt |