Cómo buscar y reemplazar varias líneas en PowerShell

  • Escribir scripts de PowerShell puede ser extremadamente útil para automatizar tareas, pero tener que buscar por todas partes para reemplazar varias líneas de texto puede ser difícil.
  • Con unos pocos comandos, le mostramos cómo lograr esto sin la necesidad de usar herramientas adicionales.

Windows PowerShell es una de las utilidades de línea de comandos más potentes del sistema operativo. El problema, sin embargo, es que los usuarios tienen poca o ninguna información sobre sus amplias capacidades. Por ejemplo, PowerShell puede buscar y reemplazar varias líneas de texto en un archivo.

Esto es excelente para muchas cosas, incluido el cambio de la base de código en varios archivos. En este artículo, explicaremos cómo reemplazar varias líneas de texto en un archivo usando PowerShell.

¿Por qué necesito reemplazar varias líneas en PowerShell?

Múltiples líneas en PowerShell son una excelente manera de hacer que sus scripts sean más legibles. También son útiles cuando desea usar una declaración en varias líneas pero no quiere dividirla en varias declaraciones.

En programación, múltiples líneas significa escribir un solo comando o instrucción en dos o más líneas.

Quizás se pregunte por qué necesitaríamos varias líneas. La razón más obvia es por motivos de legibilidad y para evitar errores al escribir comandos largos uno por uno.

Podemos usar varias líneas cuando tenemos más de un comando para ejecutar simultáneamente. Hace que nuestro código sea más legible y fácil de entender por otras personas.

Si bien todo esto es excelente, algunos usuarios prefieren reemplazar varias líneas en PowerShell. No es difícil reemplazar una línea a la vez, pero se vuelve difícil y lento cuando se trata de reemplazar varias líneas a la vez.

¿Cómo reemplazo una línea en PowerShell?

El operador de reemplazo en PowerShell es una forma práctica de reemplazar una cadena con otra cadena. Por ejemplo, si desea reemplazar todas las instancias de la palabra «prueba» con la palabra «examen», puede usar el siguiente comando:

PD> «prueba» -Reemplazar «prueba», «examen»

El método Reemplazar tiene dos parámetros:

  • Cadena de búsqueda que desea encontrar.
  • Cadena de reemplazo que desea usar en lugar de la cadena de búsqueda.

Del ejemplo anterior, ya puede decir que le llevará mucho tiempo encontrar y reemplazar varias líneas.

Para reemplazar varias líneas, deberá usar el comando Regex. El comando regex de PowerShell tiene dos parámetros:

  • Fósforo – Le permite especificar un patrón para buscar en la cadena de entrada. También puede especificar varios patrones separados por comas.
  • Reemplazar – Reemplaza todas las apariciones de la coincidencia especificada con el valor de reemplazo especificado.

Sin embargo, tiene algunas limitaciones. Solo puede reemplazar la primera aparición de una coincidencia dentro de una línea. La solución será convertir su código en una cadena de varias líneas.

Una vez que lo convierta, PowerShell tratará toda la entrada como una sola cadena, lo que facilitará su reemplazo.

1. Convertir cadena

  1. Presione la tecla de Windows, escriba Potencia Shell en la barra de búsqueda y haga clic en Ejecutar como administrador.
  2. Puede usar el modificador raw para convertir varias líneas en una sola cadena en PowerShell. Cuando utilice el modificador -raw, deberá especificar el nombre del archivo.
  3. Por ejemplo, para convertir, aplicaría el siguiente comando: Obtener contenido C:usuarioprueba1.txt -Raw
  4. Esto incluye la ubicación del archivo y el nombre del archivo.

2. Cadena de coincidencia

El parámetro de coincidencia está diseñado para encontrar uno o más caracteres que coincidan con un patrón específico.

Por ejemplo, si desea encontrar todas las palabras que comienzan con «c» en su cadena, puede usar el siguiente comando:

[regex]::coincidencias(«c*») | donde-objeto{$_ -como «*c*»}

3. Reemplazar líneas

Una vez que haya encontrado las coincidencias que desea reemplazar, puede ejecutar el comando de reemplazo de la siguiente manera:

PD> [regex]::Reemplazar($cadena, «c», «d»)

El método de búsqueda y reemplazo de PowerShell puede ser muy útil para usuarios más técnicos. Con suerte, con esta publicación, hemos obtenido un resumen bastante sólido sobre cómo encontrar y reemplazar una sola línea usando el indicador de PowerShell.

Ahora sabemos que se puede lograr con relativa facilidad y que la estructura de mando no es tan difícil de seguir. Si eres un principiante, la práctica hace al maestro.

Otros parámetros útiles de PowerShell que le pueden interesar incluyen PowerShell ErrorAction, que hemos analizado en detalle.

El bloque Try-Catch también puede valer su tiempo, especialmente si desea detectar errores en su código.

Siéntase libre de agregar sus propios consejos sobre cualquier otra información útil que podamos haber omitido.