nahradit textový řetězec v souboru [Guide]

Ruční úprava textových souborů v Linuxu může být únavná. Proto je dobré vědět, jak rychle nahradit textové řetězce v souborech pomocí příkazového řádku. Pokud s Linuxem začínáte a nevíte, jak na to, můžeme vám pomoci! Pokračujte, když vám ukážeme, jak nahradit textový řetězec v souboru v systému Linux!

Nahradit textový řetězec v souboru – sed

Nástroj sed je nejlepší způsob, jak nahradit textový řetězec v souboru v systému Linux. Důvod? Je přímočarý na použití a svou práci plní velmi dobře. Sed je obvykle předinstalován na 99 % operačních systémů Linux, takže pro použití není potřeba jej instalovat.

Nahrazení textového řetězce v souboru řetězcem Sed se provádí příkazem sed -i. Zde je návod, jak jej používat. Nejprve otevřete okno terminálu na ploše Linuxu. Terminálové okno můžete otevřít stisknutím Ctrl + Alt + T na klávesnici.

Jakmile je okno terminálu otevřené a připravené k použití, napište do příkazového řádku terminálu sed -i. Toto je začátek příkazu nahrazení.

sed -i

Po napsání příkazu sed -i přidejte uvozovku ‚. Tato uvozovka je nezbytná, protože veškerý text nahrazovaný sed -i musí začínat za touto značkou.

sed -i '

Za první značkou ‚ napište s/. S/ jde přímo před existující text, který chcete nahradit pomocí sed.

sed -i 's/

Nyní, když je s/ zapsáno do příkazového řádku terminálu, je čas sdělit sed, jaký text má v souboru nahradit. V tomto příkladu nahradíme slovo „jablko“.

sed -i 's/apple

Když je do příkazu zapsán text, který chceme nahradit, dalším krokem je zapsat nový text, který jej nahradí. V tomto příkladu nahradíme „jablka“ výrazem „pomeranče“.

sed -i 's/apples/oranges

Jakmile je do příkazu zapsán text, který chceme nahradit (pomeranče), zavřete příkaz pomocí g/. G/ říká sed, aby nahradil všechny instance textu (jablka) novým textem (pomeranče). Mělo by to vypadat jako v příkladu níže.

Poznámka: Pokud nechcete nahradit každý text v souboru (například jablka za pomeranče), odeberte g a nechte jej běžet jako sed -i ‚s/jablka/pomeranče/‘.

sed -i 's/apple/orange/g'

Nakonec řekněte sedovi, v jakém souboru je text, který je třeba nahradit. V tomto příkladu je cílem fruit.txt v domovském adresáři.

sed -i 's/apples/oranges/g' ~/fruit.txt

Stisknutím klávesy enter spustíte příkaz a nahradíte textový řetězec v souboru.

Nahradit textový řetězec v souboru – Perl

Dalším způsobem, jak nahradit textový řetězec v souboru v Linuxu, je programovací jazyk Perl. Perl se hodně používá pro zpracování textu, takže přirozeně dokáže zaměnit textové řetězce v souborech a je pro tento případ použití ideální.

Chcete-li začít, ujistěte se, že máte na svém počítači se systémem Linux nainstalovaný Perl. Většina operačních systémů Linux je dodávána s nainstalovaným Perlem. Pokud jej však nemáte, podívejte se na stránku nápovědy operačního systému, kde naleznete informace o tom, jak jej zprovoznit.

Použití Perlu k nahrazení textových řetězců v souboru vyžaduje terminál. Otevřete terminál na ploše Linuxu stisknutím Ctrl + Alt + T na klávesnici. Nebo vyhledejte v nabídce aplikace „Terminál“ a spusťte jej tímto způsobem.

Jakmile je okno terminálu otevřené a připravené k použití, začněte zadáním perl -pe do příkazového řádku. Příkaz perl -pe je to, co je potřeba k nahrazení textového řetězce v souboru.

perl -pe

Po napsání perl -pe do příkazového řádku terminálu budete muset začít s první uvozovkou ‚. Tato značka říká Perlu, kde je v příkazu oblast pro nahrazení textu.

perl -pe '

Za první uvozovkou přidejte s/, za ním řetězec textu, který chcete nahradit, a další /. Chcete-li například nahradit „jablka“ v souboru fruit.txt, napsali byste následující text.

perl -pe 's/apples/

Po napsání slova (slov), které chcete nahradit, přidejte slovo, které nahradí stávající text. Pokud například chcete nahradit „jablka“ v „fruit.txt“ za „pomeranče“, přidejte „pomeranče“ za perl -pe ‚s/apples/, takže to vypadá jako perl -pe ‚s/jablka/pomeranče/ .

perl -pe 's/apples/oranges/

Jakmile jsou v příkazu oba textové řetězce, budete muset zadat vstupní soubor, který Perl používá. Chcete-li například nahradit text v souboru „fruit.txt“, budete jej muset zadat v příkazu.

Poznámka: v tomto příkladu je soubor „fruit.txt“ v domovském adresáři (~/). Aby příkaz fungoval, nezapomeňte nahradit „~/fruit.txt“ umístěním textového souboru.

perl -pe 's/apples/oranges/' ~/fruit.txt

Nyní, když je k příkazu přidán vstupní soubor (soubor, který upravujete pomocí Perlu), příkaz by měl 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 bude textový řetězec nahrazen novým textem, který jste zadali. V našem příkladu jsme „jablka“ nahradili „pomeranče“. Chcete-li zobrazit změny, zadejte příkaz níže.

cat fruit.txt