PowerShell:
Sökning och ersättning av text
Hur man gör:
Låt oss dyka rakt in i några PowerShell-kommandon:
# Söker och ersätter 'äldre' med 'nyare' i en textsträng
$text = 'Detta är en teststräng med ordet äldre.'
$nyText = $text -replace 'äldre', 'nyare'
Write-Output $nyText
Output:
Detta är en teststräng med ordet nyare.
För att jobba med filer:
# Söker och ersätter i en fil
Get-Content .\gammal_fil.txt | ForEach-Object {
$_ -replace 'gammal', 'ny'
} | Set-Content .\ny_fil.txt
Om du vill göra en case-insensitive sökning, använd -ireplace
istället:
$text = 'PowerShell Är Kul.'
$nyText = $text -ireplace 'är', 'IS'
Write-Output $nyText
Output:
PowerShell IS Kul.
Deep Dive
Sök och ersätt började i de tidigaste textredigerarna – en tid när automatisering var nytt. I PowerShell används regex (Regular Expressions) för mer avancerade operationer, vilket ger djupare kontroll över textmanipulering.
Förutom -replace
, finns andra cmdlets som Select-String
för att bara hitta textsträngar. Implementationen utnyttjar .NET-klasserna under huven, vilket ger snabb och kraftfull textbearbetning.
Alternativ
Du kan också använda .NET-metoder direkt i PowerShell, som Replace()
på strängobjekt, men det ‘PowerShelliga’ sättet med -replace
är oftast enklare för simple uppgifter.
Se även
- Microsofts dokumentation om
-replace
: https://docs.microsoft.com/powershell/module/microsoft.powershell.core/about/about_comparison_operators - PowerShell Regular Expressions Guide: https://ss64.com/ps/syntax-regex.html
- More about Select-String: https://docs.microsoft.com/powershell/module/microsoft.powershell.utility/select-string