Jak nahradit slovo ve více textových souborech v systému Windows 10
Textové editory, jako je Poznámkový blok a Poznámkový blok++, slouží k vytváření rozmanitých typů souborů, například titulků, logů, dávkových souborů, skriptů PowerShell a mnoha dalších. Kromě možnosti vytvářet tyto soubory, textové editory umožňují i jejich modifikaci. Jestliže máte rozsáhlou kolekci textových dokumentů s příponou TXT a potřebujete v nich zaměnit konkrétní slovo nebo slovní spojení, efektivním řešením je použití skriptu PowerShell. Tento skript vám ušetří čas, který byste jinak strávili otevíráním a ruční úpravou každého souboru zvlášť. Stejný skript lze aplikovat i na jiné typy souborů, které lze generovat pomocí textových editorů. Následuje postup, jak hromadně nahradit slovo v několika textových souborech.
Hromadná záměna slov v textových souborech
Nejprve je nutné umístit všechny cílové textové soubory do jediné složky. Skript totiž při svém spuštění prohledává pouze specifikovaný adresář, nikoliv celý systém, proto je klíčové mít všechny soubory pohromadě.
Otevřete nový dokument v Poznámkovém bloku a zkopírujte do něj následující kód:
Get-ChildItem 'Path-to-files*.txt' -Recurse | ForEach {
(Get-Content $_ | ForEach { $_ -replace 'Original-Word', 'New-Word' }) |
Set-Content $_
}
Tento skript vyžaduje úpravu. V první řadě nahraďte výraz ‘Cesta-k-souborům‘ absolutní cestou k adresáři, kde se nacházejí vaše textové soubory. Dále zaměňte ‘Původní-Slovo‘ za slovo, které chcete v dokumentech nahradit. A nakonec, výraz ‘Nové-Slovo‘ změňte na slovo, kterým původní slovo nahradíte. Uvedu příklad: Představte si, že mám několik textových souborů, v nichž se opakuje slovo ‘Příspěvek‘. Chci ho nahradit slovem ‘Článek‘. Takto upravený skript bude vypadat:
Get-ChildItem 'C:UsersfatiwDesktopnotepad-files*.txt' -Recurse | ForEach {
(Get-Content $_ | ForEach { $_ -replace 'Post', 'Article' }) |
Set-Content $_
}
Jakmile skript upravíte dle svých potřeb, uložte ho s příponou .ps1. Při ukládání v dialogovém okně Poznámkového bloku nezapomeňte změnit typ souboru z "Textové dokumenty" na "Všechny soubory". Spusťte uložený skript a ten automaticky provede hromadnou záměnu slov.
Chcete-li aplikovat stejný skript na XML nebo LOG soubory, stačí upravit příponu souboru v prvním řádku skriptu. Například z:
Get-ChildItem 'C:UsersfatiwDesktopnotepad-files*.txt'
na:
Get-ChildItem 'C:UsersfatiwDesktopnotepad-files*.xml'
Je však nutné upozornit na jednu důležitou vlastnost tohoto skriptu: neprovádí celoslovní porovnávání. To znamená, že pokud se rozhodnete nahradit každé slovo ‘the‘ za ‘a‘, skript nahradí i ‘the‘ na začátku slov ‘these‘ nebo ‘there‘. To je limitace tohoto skriptu. Pokud potřebujete přesné celoslovní nahrazení, můžete použít editory, jako je Poznámkový blok++, který tuto funkci nabízí.