V této příručce probereme dva méně známé linuxové příkazy, jmenovitě Rozbalit a Rozbalit s praktickými příklady. Pro ty, kdo by byli zvědaví, příkaz Expand se používá k nahrazení znaků TAB znaky MEZERNÍKŮ v souborech a příkaz Unexpand dělá opak, tj. nahrazuje znaky MEZERNÍKA znaky TAB v souboru. Ve skutečnosti má MS-DOS také příkaz s názvem "Expand", který se používá k rozbalení komprimovaného souboru. Ale příkaz Linux Expand jednoduše převede tabulátory na mezery. Tyto dva příkazy jsou součástí GNU coreutils a napsal David MacKenzie .
Pro demonstrační účely budu v této příručce používat textový soubor s názvem "ostechnix.txt".
Rozbalte příklady příkazů
Jak již bylo řečeno, příkaz Expand nahradí znaky TAB v souboru znaky SPACE.
Chcete-li převést tabulátory na mezery v souboru, například "ostechnix.txt", a zapsat výsledek na standardní výstup pomocí příkazu:
$ expand ostechnix.txt
Pokud nechcete zobrazit výsledek ve standardním výstupu, jednoduše jej nahrajte do jiného souboru, jak je uvedeno níže.
$ expand ostechnix.txt>output.txt
Můžeme také převést tabulátory na mezery, číst ze standardního vstupu. Chcete-li tak učinit, stačí spustit příkaz "rozbalit" bez uvedení názvu zdrojového souboru:
$ expand
Stačí napsat text a stisknout ENTER pro převod tabulátorů na mezery. Stiskněte CTRL+C ukončit.
Pokud nechcete převádět tabulátory za mezerami, použijte -i příznak jako níže.
$ expand -i ostechnix.txt
Můžeme mít také tabulátory o určitý počet znaků od sebe, nikoli 8 (výchozí hodnota):
$ expand -t=5 ostechnix.txt
Můžete dokonce zmínit více pozic karet oddělených čárkou, jak je uvedeno níže.
$ expand -t 5,10,15 ostechnix.txt
Nebo,
$ expand -t "5 10 15" ostechnix.txt
Další podrobnosti naleznete na manuálových stránkách.
$ man expand
Rozbalit příklady příkazů
Rozbalit příkaz udělá opak příkazu Expand. Převede znaky SPACE na znaky TAB. Dovolte mi ukázat vám několik příkladů, jak se naučit používat příkaz Unexpand.
Chcete-li převést mezery (samozřejmě mezery) v souboru na tabulátory a zapsat výstup do stdout, postupujte takto:
$ unexpand ostechnix.txt
Pokud chcete výstup zapsat do souboru, místo abyste jej pouze zobrazovali na stdout, použijte tento příkaz:
$ unexpand ostechnix.txt>output.txt
Převést mezery na tabulátory, čtení ze standardního výstupu:
$ unexpand
Ve výchozím nastavení příkaz Rozbalit převede pouze počáteční mezery. Pokud chcete převést všechny mezery, namísto pouze počátečních mezer, použijte -a příznak:
$ unexpand -a ostechnix.txt
Chcete-li převést pouze úvodní sekvence mezer (Upozorňujeme, že přepíše -a ):
$ unexpand --first-only ostechnix.txt
Mějte tabulátory od sebe o určitý počet znaků, nikoli 8 (povolí -a ):
$ unexpand -t 5 ostechnix.txt
Podobně můžeme zmínit více pozic karet s oddělenými čárkami, jak je uvedeno níže.
$ unexpand -t 5,10,15 ostechnix.txt
Nebo,
$ unexpand -t "5 10 15" ostechnix.txt
Další podrobnosti naleznete na manuálových stránkách.
$ man unexpand
Doporučené čtení:
- Výukový program pro skládání s příklady pro začátečníky
Při práci s velkým množstvím souborů mohou být příkazy Expand a Unexpand velmi užitečné k nahrazení nežádoucích znaků TAB znaky SPACE a naopak.