es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Existe alguna manera de cambiar múltiples líneas con un solo bucle en Power Shell?

Tengo un archivo de texto como este:

info

:

Fui a París

xxx

yyy

zzz

info

:

Fui a Italia

aaa

bbb

ccc

Quiero que este archivo de texto sea así:

Info : Fui a París

xxx

yyy

zzz

Info : Fui a Italia

aaa

bbb

ccc

Entonces será así;

1- Encontrar todos los dos puntos

2- (una forma) presionar dos veces el botón de retroceso, moverse a la línea superior y presionar el espacio + dos puntos + espacio + botón de borrar, lo cual llevará esas líneas de París e Italia a la línea superior.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Como experto especializado en PowerShell y análisis de texto, recomendaría utilizar un patrón regex para coincidir con el texto deseado y luego usar el método replace para reformatear el archivo de texto. El código PowerShell a continuación demuestra cómo se puede hacer esto:

    $content = Get-Content "input.txt" -Raw
    $pattern = "(?<=\n)([a-zA-Z\s]+)(\s*:\s*)([a-zA-Z\s]+)"
    $replace = "`n`$1`$2`$3`n"
    
    $output = $content -replace $pattern, $replace
    $output | Out-File "output.txt"
    

    Explicación del código:

    1. Obtener el contenido del archivo de entrada como una cadena única.
    2. Definir un patrón de expresión regular que coincida con el formato de texto deseado. El patrón utiliza una búsqueda anticipada positiva para coincidir con el carácter de nueva línea que precede a los dos puntos.
    3. Definir la cadena de reemplazo que incluye caracteres de nueva línea seguidos de los grupos capturados del patrón con el formato deseado.
    4. Utilizar el método replace para reemplazar todas las coincidencias del patrón en la cadena de entrada con la cadena de reemplazo.
    5. Escribir la salida formateada en un archivo de salida.

    El código anterior producirá la salida deseada como se muestra en el ejemplo. La ventaja de utilizar PowerShell es que puede manejar archivos de texto grandes de manera eficiente y proporciona una forma flexible de trabajar con datos de texto.

Comments are closed.