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