Przejdź do głównej zawartości

unexpand


  • unexpand – narzędzie zamieniające znaki tabulacji na spacje w plikach lub danych wejściowych.
  • Przydatne do standaryzacji formatowania kodu i tekstu, szczególnie w projektach wymagających używania spacji zamiast tabulatorów.
  • Część pakietu GNU coreutils, dostępne w większości dystrybucji Linuksa oraz systemach UNIX.

Okno terminala
unexpand [opcje] [PLIK...]
  • Jeśli nie podano plików – odczytuje dane ze standardowego wejścia.

ParametrOpis
-a, --allKonwertuje wszystkie tabulatory w wierszu, nie tylko początkowe.
-t, --tabs=NUstawia szerokość tabulatora na N znaków (domyślnie 8).
--first-onlyKonwertuje tylko wiodące tabulatory (domyślne zachowanie).
--helpWyświetla pomoc.
--versionWyświetla wersję programu.

Okno terminala
# 1) Zamiana wiodących tabulatorów na spacje w pliku
unexpand plik.txt > plik_spacje.txt
Okno terminala
# 2) Konwersja wszystkich tabulatorów
unexpand -a kod.c > kod_spacje.c
Okno terminala
# 3) Ustawienie szerokości tabulatora na 4 spacje
unexpand -t 4 dane.txt > dane_spacje.txt
Okno terminala
# 4) Odczyt ze standardowego wejścia
echo -e "A\tB" | unexpand -t 4

  • Domyślnie unexpand konwertuje tylko wiodące tabulatory; opcja -a jest konieczna do zamiany wszystkich.
  • Szerokość tabulatora (-t) wpływa na liczbę wstawianych spacji.
  • Wartość -t może być listą (np. -t 4,8) określającą kolumny tabulacji.
  • Działa odwrotnie do polecenia expand.

Błąd / KomunikatPrzyczynaRozwiązanie
Zmieniona tylko część tabulatorówDomyślnie konwertowane są tylko wiodące tabulatory.Użyj opcji -a.
Niewłaściwa liczba spacji po konwersjiNiepoprawnie ustawiona szerokość tabulatora.Skorzystaj z -t N, by ustawić odpowiednią wartość.
unexpand: command not foundBrak programu w systemie.Zainstaluj pakiet coreutils.