PowerShell:
Wyszukiwanie i zamiana tekstu
Jak to zrobić:
Załóżmy, że chcesz zmienić “hello” na “hi” w tekście. W PowerShell to proste:
# Szukanie i zamiana tekstu w zmiennej
$text = "hello world"
$newText = $text -replace 'hello', 'hi'
$newTextWyjście będzie wyglądać tak:
hi worldA jeśli zechcesz to zautomatyzować dla wielu plików:
# Szukanie i zamiana w wielu plikach
Get-ChildItem *.txt | ForEach-Object {
(Get-Content $_) -replace 'stary', 'nowy' | Set-Content $_
}Pamiętaj, że -replace korzysta z wyrażeń regularnych, więc sprytne triki z nimi również zadziałają.
Deep Dive
Początki “find and replace” sięgają początków edycji tekstu na komputerach. To nie tylko funkcja notatników i IDE, ale podstawowe narzędzie w skryptach i automatyce. PowerShell udostępnia -replace jako część swojej składni, co czyni go bardzo elastycznym.
Alternatywą jest sed w Unixach, ale w PowerShell, Get-Content, -replace i Set-Content to potężna kombinacja. Możesz np. użyć Get-Content do wczytania pliku, -replace do przeszukania ciągów znaków oraz Set-Content do zapisania zmian.
Ważne jest, że -replace działa z wyrażeń regularnych (regex), co oznacza, że możesz wykonywać bardzo specyficzne zmiany w tekście.
See Also
- about_Comparison_Operators
- about_Regular_Expressions
- PowerShell Gallery - do poszukiwania skryptów społeczności
Pamiętaj, że praktyka czyni mistrza. Korzystając z tych zasobów oraz eksperymentując, szybko staniesz się doświadczonym użytkownikiem PowerShell.