¿Cómo reemplazar texto en cadenas usando PowerShell?
Esto será útil si está trabajando con cadenas en la automatización de PowerShell. Aquí he explicado cómo reemplazar texto en cadenas usando PowerShell usando diferentes métodos.
Para reemplazar texto en cadenas usando PowerShell, puede usar el método Replace() para reemplazos simples que distinguen entre mayúsculas y minúsculas o el operador -replace para reemplazos más complejos que distinguen entre mayúsculas y minúsculas. -Reemplazos insensibles y basados en expresiones regulares. Por ejemplo, $string.Replace("old", "new") reemplaza todas las apariciones de “old” por “new”, mientras que $string -replace "(?i)old" , "nuevo" realiza un reemplazo que no distingue entre mayúsculas y minúsculas.
Reemplazar texto en cadenas usando PowerShell
Ahora, déjame mostrarte algunos métodos útiles para reemplazar texto en cadenas en PowerShell con ejemplos.
Usando el método Reemplazar()
El método Replace() es un método muy útil para reemplazar texto en una cadena en PowerShell. Este método distingue entre mayúsculas y minúsculas y reemplaza todas las apariciones de una subcadena especificada con una nueva subcadena.
Déjame mostrarte un ejemplo.
Ejemplo:
$string = "Hello World"
$newString = $string.Replace("World", "PowerShell")
Write-Output $newString # Output: Hello PowerShellEn este ejemplo, la palabra "Mundo" se reemplaza por "PowerShell".
Ejecuté el script anterior y puedes ver el resultado en la siguiente captura de pantalla:
Usando el operador -replace
En PowerShell, también puede usar el operador -replace para reemplazar texto en cadenas usando PowerShell.
El operador -replace en PowerShell es más flexible que el método Replace() porque admite expresiones regulares. Déjame mostrarte un ejemplo.
Ejemplo:
$string = "Hello World"
$newString = $string -replace "World", "PowerShell"
Write-Output $newString # Output: Hello PowerShellAl igual que el método Replace() , este reemplaza "Mundo" por "PowerShell".
Puede ver el resultado en la captura de pantalla a continuación después de ejecutar el script de PowerShell anterior.
Consulte Contar apariciones de una subcadena en una cadena en PowerShell
Reemplazo que no distingue entre mayúsculas y minúsculas mediante PowerShell
Para realizar un reemplazo que no distinga entre mayúsculas y minúsculas, puede utilizar el operador -replace con la opción de expresión regular (?i) en PowerShell.
Déjame mostrarte un ejemplo.
Ejemplo:
$string = "Hello WORLD"
$newString = $string -replace "(?i)world", "PowerShell"
Write-Output $newString # Output: Hello PowerShellAquí, la opción (?i) hace que el reemplazo no distinga entre mayúsculas y minúsculas, por lo que "MUNDO" se reemplaza por "PowerShell".
Reemplazar varios caracteres usando PowerShell
Puede reemplazar varios caracteres encadenando varias llamadas al método Replace() o utilizando una expresión regular más compleja con el operador -replace .
Déjame mostrarte algunos ejemplos.
Ejemplo con Replace() Método:
$string = "Hello-World-!"
$newString = $string.Replace("-", " ").Replace("!", "")
Write-Output $newString # Output: Hello World Ejemplo con -replace Operador:
$string = "Hello-World-!"
$newString = $string -replace "[-!]", " "
Write-Output $newString # Output: Hello World En estos ejemplos, tanto - como ! se reemplazan por espacios.
Leer Eliminar caracteres de cadenas en PowerShell
Reemplazo condicional en PowerShell
También puede realizar reemplazos condicionales usando PowerShell. Por ejemplo, es posible que desees reemplazar el texto sólo si cumple ciertos criterios. Déjame mostrarte un ejemplo.
Ejemplo:
$string = "The quick brown fox jumps over the lazy dog"
if ($string -match "fox") {
$newString = $string -replace "fox", "cat"
}
Write-Output $newString # Output: The quick brown cat jumps over the lazy dogEn este ejemplo, "zorro" se reemplaza por "gato" solo si se encuentra "zorro" en la cadena.
Puede ver el resultado en la siguiente captura de pantalla:
Reemplazar texto en varias líneas en PowerShell
Cuando trabaje con cadenas de varias líneas, puede utilizar el operador -replace para reemplazar texto en todas las líneas en PowerShell. Déjame mostrarte un ejemplo.
Ejemplo:
$string = @"
Hello World
Hello PowerShell
"@
$newString = $string -replace "Hello", "Hi"
Write-Output $newStringSalida:
Hi World
Hi PowerShellEn este ejemplo, "Hola" se reemplaza por "Hola" en ambas líneas.
Conclusión
En este tutorial, he explicado cómo reemplazar texto en cadenas en PowerShell usando el método Reemplazar() y usando el operador -reemplazar con varios ejemplos.


