Usando -replace en tuberías en powershell


12

Quiero probar un reemplazo antes de usarlo, así que estoy tratando de escribir un comando rápido en línea para ver cuál es el resultado. Sin embargo, no estoy seguro de cuál es la sintaxis. Lo que quiero hacer es algo como

cat file | -replace "a", "b"

¿Cuál es la sintaxis correcta de PowerShell para esto?

Sé que también puedo hacer $a = cat filey luego reemplazar $a, pero me gustaría mantener esto en una línea

Respuestas:


16

Esto debería ser el truco, pasará por todas las líneas del archivo y reemplazará cualquier "a" con "b", pero luego deberá guardarlo nuevamente en un archivo

cat file | % {$_.replace("a","b")} | out-file newfile

4

Para usar el operador Powershell -replace (que funciona con expresiones regulares) haga esto:

cat file.txt | % {$_ -replace "\W", ""} # -replace operator uses regex

tenga en cuenta que el operador -replace usa la coincidencia de expresiones regulares, mientras que el siguiente ejemplo usaría un texto no regex para buscar y reemplazar, ya que usa el método String.Replace de .NET Framework

cat file | % {$_.replace("abc","def")} # string.Replace uses text matching
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.