Úprava textových dokumentů v Linuxu manuálně může být zdlouhavá. Proto je výhodné znát metody, jak rychle zaměnit konkrétní textové pasáže v souborech pomocí příkazového řádku. Pokud jste s Linuxem nováčci a nevíte si s tím rady, rádi vám pomůžeme! Následující řádky vám ukáží, jak v Linuxu efektivně nahradit textové řetězce v souborech.
Záměna textu v souborech s využitím nástroje sed
Nástroj sed je považován za nejefektivnější metodu pro nahrazování textu v souborech v Linuxu. Je to díky jeho jednoduchosti a vysoké efektivitě. Sed je zpravidla předinstalovaný ve většině linuxových operačních systémů, tudíž není nutná žádná dodatečná instalace.
Záměna textu v souboru pomocí příkazu Sed se provádí s použitím parametru -i
. Níže je uveden postup, jak tento příkaz použít. Nejprve otevřete terminál v prostředí Linuxu. Terminál můžete spustit kombinací kláves Ctrl + Alt + T.
Po otevření terminálu zadejte do příkazového řádku sed -i
. To je základní konstrukce příkazu pro nahrazení.
sed -i
Následně za příkaz sed -i
přidejte apostrof '
. Tento znak je klíčový, protože veškerý text pro nahrazení pomocí sed -i musí začínat za tímto symbolem.
sed -i '
Po prvním apostrofu zadejte s/
. Tato sekvence značí, že následující text bude hledán a nahrazen.
sed -i 's/
Když je s/
zapsáno v příkazovém řádku, je čas specifikovat, jaký text v souboru chcete nahradit. V tomto demonstračním příkladu si ukážeme nahrazení slova „jablko“.
sed -i 's/apple
Po zapsání textu k nahrazení následuje definování nového textu, který jej má nahradit. V našem příkladu nahradíme „jablka“ slovem „pomeranče“.
sed -i 's/apples/oranges
Jakmile je v příkazu obsažen nový text, který bude nahrazovat původní, uzavřete příkaz sekvencí g/
. g/
informuje sed, že má nahradit všechny výskyty textu (jablka) novým textem (pomeranče). Výsledný příkaz by měl vypadat jako v následujícím příkladu.
Poznámka: Pokud nechcete nahradit všechny výskyty (například jablka za pomeranče), odstraňte g
a ponechte jen sed -i 's/jablka/pomeranče/'
.
sed -i 's/apple/orange/g'
Závěrem, je nutné sdělit sed, ve kterém souboru se nachází text určený k nahrazení. V našem případě je cílovým souborem fruit.txt
, který je umístěn v domovském adresáři.
sed -i 's/apples/oranges/g' ~/fruit.txt
Stisknutím klávesy Enter spustíte příkaz a provedete nahrazení textu v daném souboru.
Záměna textu v souborech s využitím jazyka Perl
Další metodou, jak efektivně nahrazovat text v souborech v Linuxu, je využití programovacího jazyka Perl. Perl je často využíván pro zpracování textu, a proto je přirozeně vhodný pro záměnu textových pasáží v souborech.
Pro začátek se ujistěte, že máte Perl na vašem linuxovém počítači nainstalovaný. Většina distribucí Linuxu přichází s již předinstalovaným Perlem. Nicméně pokud Perl nemáte, prostudujte si nápovědu vašeho operačního systému, kde naleznete instrukce, jak jej nainstalovat.
Pro použití Perlu k nahrazování textu v souborech je potřeba otevřít terminál. Terminál spustíte klávesovou zkratkou Ctrl + Alt + T. Případně jej můžete vyhledat v menu aplikací a spustit tak.
Jakmile je terminál otevřen a připraven k použití, začněte zadáním perl -pe
do příkazové řádky. Příkaz perl -pe
je základní konstrukce pro provedení nahrazení textu v souboru.
perl -pe
Po zadání perl -pe
do terminálu je nutné začít prvním apostrofem '
. Tento znak informuje Perl, kde je v příkazu oblast vyhrazená pro nahrazení textu.
perl -pe '
Po prvním apostrofu přidejte s/
, za nímž následuje text, který chcete nahradit, a další /
. Například pro nahrazení „jablka“ v souboru fruit.txt
byste napsali následující text.
perl -pe 's/apples/
Po zadání textu, který má být nahrazen, následuje text, kterým má být původní nahrazen. Pokud například chcete nahradit „jablka“ v fruit.txt
slovem „pomeranče“, přidejte „pomeranče“ za perl -pe 's/apples/
, takže výsledný zápis bude vypadat jako perl -pe 's/apples/oranges/
.
perl -pe 's/apples/oranges/
Jakmile jsou v příkazu obsaženy oba textové řetězce, musíte zadat vstupní soubor, se kterým má Perl pracovat. Například, chcete-li provést nahrazení textu v souboru fruit.txt
, musíte tento soubor v příkazu specifikovat.
Poznámka: V našem příkladu se soubor fruit.txt
nachází v domovském adresáři (~/). Pro správnou funkčnost příkazu nezapomeňte nahradit ~/fruit.txt
cestou k vašemu textovému souboru.
perl -pe 's/apples/oranges/' ~/fruit.txt
Nyní, když je k příkazu připojen vstupní soubor, měl by vypadat jako níže.
perl -pe 's/apples/oranges/' ~/fruit.txt > /tmp/output.txt;cat /tmp/output.txt > ~/fruit.txt
Po spuštění výše uvedeného příkazu dojde k nahrazení textového řetězce novým textem, který jste zadali. V našem příkladu jsme „jablka“ nahradili slovem „pomeranče“. Pro zobrazení změn můžete použít níže uvedený příkaz.
cat fruit.txt