Práce na příkazovém řádku Linuxu vyžaduje naučit se rychle provádět některé opakující se úkoly. Jedním z takových úkolů, do kterých se dříve nebo později můžete zapojit, je převod prázdných míst na karty nebo naopak. V tomto tutoriálu probereme nástroj příkazového řádku – nazvaný unexpand - to vám v takových situacích velmi pomůže.
Ale než začneme, stojí za zmínku, že všechny příklady v tomto článku byly testovány na počítači Ubuntu 16.04 LTS.
Příkaz Linux unexpand
Příkaz unexpand umožňuje převést mezery na tabulátory. Následuje jeho syntaxe:
unexpand [OPTION]... [FILE]...
A zde je návod, jak to popisuje manuálová stránka:
Convert blanks in each FILE to tabs, writing to standard output. With no FILE, or when FILE is -, read standard input.
Následuje několik příkladů ve stylu otázek a odpovědí, které by vám měly poskytnout dobrou představu o tom, jak příkaz unexpand funguje.
O1. Jak použít příkaz unexpand?
Předpokládejme, že máte soubor s textem obsahujícím tabulátory. Nyní, z jakéhokoli důvodu, převedete tyto tabulátory na mezery pomocí příkazu expand a nyní chcete převést mezery na tabulátory znovu, pak v tomto případě můžete použít příkaz unexpand.
Například:
unexpand file1
Nástroj vytváří převedený výstup na stdout. Chcete-li jej uložit, můžete jej přesměrovat do nějakého souboru. Například:
unexpand file1 > file2
Stojí za zmínku, že ve výchozím nastavení tento nástroj funguje pouze na počátečních mezerách. Pomocí volby -a můžete obslužnému programu sdělit, že chcete převést všechny mezery/mezery na tabulátory.
2. Jak donutit unexpand převést pouze počáteční/zaváděcí mezery?
Nástroj poskytuje volbu, která jej nutí převádět pouze počáteční mezery nebo mezery (i když je přítomna volba -a). Dotyčná možnost je --first-only .
unexpand --first-only -a file1 > file2
O3. Co dělá volba -t?
No, volba -t má více rolí. Přijímá buď jedno číslo, nebo seznam čísel oddělených čárkami. Když předáte jediné číslo (řekněme 'n'), příkaz unexpand zajistí komprimaci mezer v souboru do tabulátorů na každé pozici 'n'.
Chcete-li například, aby nástroj komprimoval polotovary na tabulátory každé 3 pozice, použijte tuto možnost následujícím způsobem:
unexpand -t 3 file1 > file2
Na druhou stranu, pokud je u této možnosti uveden seznam čísel oddělený příkazy, nástroj umístí zarážky tabulátoru na tato konkrétní místa.
unexpand -t 1,2,3 file1 > file2
Q4. Jak rozbalit čtení vstupu ze STDIN?
To je poměrně snadné – stačí spustit příkaz bez jakéhokoli názvu souboru jako vstupu (použitím ctrl+D sdělte nástroji, že jste hotovi).
Zde je to, o čem mluvím:
unexpand
Závěr
V závislosti na druhu práce, kterou děláte, může být příkaz unexpand velkou pomocí. V tomto tutoriálu jsme diskutovali o většině možností příkazového řádku, které tento nástroj nabízí. Chcete-li vědět více, přejděte na jeho manuálovou stránku.