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'
$newText

Wyjście będzie wyglądać tak:

hi world

A 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

Pamiętaj, że praktyka czyni mistrza. Korzystając z tych zasobów oraz eksperymentując, szybko staniesz się doświadczonym użytkownikiem PowerShell.