Cum să înlocuiți un cuvânt în mai multe fișiere text pe Windows 10

Editoarele de text, precum Notepad sau Notepad++, sunt instrumente versatile, folosite pentru a genera o varietate mare de fișiere: subtitrări, jurnale de evenimente, fișiere batch, scripturi PowerShell și multe altele. Pe lângă crearea acestor tipuri de fișiere, editoarele de text permit și modificarea lor. Atunci când te confrunți cu un număr mare de fișiere text (.txt), unde dorești să substitui un anumit cuvânt sau grup de cuvinte, un script PowerShell se dovedește extrem de util. Acest script elimină necesitatea de a deschide și edita fiecare fișier individual, automatizând procesul. Același script poate fi adaptat și pentru alte tipuri de fișiere generate cu ajutorul unui editor de text. Iată cum poți înlocui un cuvânt în mai multe fișiere text simultan.

Înlocuirea textului în fișiere multiple

Primul pas constă în plasarea tuturor fișierelor text într-un singur director. Scriptul va scana doar acest director și nu întregul sistem de fișiere, de aceea este important ca toate fișierele să fie grupate într-un singur loc.

Deschideți un nou document în Notepad și introduceți următorul cod:

Get-ChildItem 'Path-to-files*.txt' -Recurse | ForEach {
(Get-Content $_ | ForEach { $_ -replace 'Original-Word', 'New-Word' }) |
Set-Content $_
}

Acum este necesar să adaptezi acest script. Mai întâi, înlocuiește textul „Path-to-files” cu adresa exactă a dosarului care conține fișierele text. Apoi, înlocuiește „Original-Word” cu textul pe care dorești să îl schimbi și „New-Word” cu textul care îl va înlocui pe cel original. De exemplu, să presupunem că ai mai multe fișiere care conțin cuvântul „Postează” și vrei să îl schimbi cu „Articol”. Scriptul modificat va arăta astfel:

Get-ChildItem 'C:UsersfatiwDesktopnotepad-files*.txt' -Recurse | ForEach {
(Get-Content $_ | ForEach { $_ -replace 'Post', 'Article' }) |
Set-Content $_
}

După ce ai efectuat modificările, salvează scriptul cu extensia .ps1. În fereastra de dialog „Salvare ca” din Notepad, asigură-te că selectezi „Toate fișierele” în loc de „Fișiere text”. Rulează scriptul și acesta va efectua modificările necesare în fișiere.

Dacă dorești să folosești același script și pentru fișiere XML sau LOG, modifică extensia din prima linie a scriptului. De exemplu:

Linia

Get-ChildItem 'C:UsersfatiwDesktopnotepad-files*.txt'

se va transforma în:

Get-ChildItem 'C:UsersfatiwDesktopnotepad-files*.xml'

Este important să reții un aspect legat de acest script: el nu face o potrivire strictă a cuvintelor. Dacă dorești să înlocuiești toate aparițiile lui „the” cu „a”, scriptul va schimba și „the” din interiorul unor cuvinte precum „these” sau „there”. Acesta este un dezavantaj al acestui script. Pentru a evita această problemă, poți folosi editorul Notepad++, care are o opțiune de potrivire strictă a cuvintelor.