¿Cómo eliminar una línea basada en una cadena de expresiones regulares en Powershell?

¿Cómo eliminar una línea basada en una cadena de expresiones regulares en Powershell?

Quiero validar si la línea encima de cierta línea está ahí, entonces está bien. En caso contrario, ¿eliminar esa línea y eliminar el espacio vacío? ¿Se puede hacer esto en powershell? por favor ayuda

Si antes de todas las líneas que comienzan con "^37", si la línea comienza con 33, entonces está bien. De lo contrario, elimine esa línea y elimine también el espacio vacío. Ahora, hay más de cien mil casos como este en mi expediente. Por favor ayuda... es muy urgente.

Archivo TestData.txt: -

03,201779,,01354,73923309,,,TEST2,7962753,,,0343,5087632,,/#end of line
04,399,777873,,,,text234,,,,/ 
33,TEST1,,,0343,,93493,,,343,,,,TEST3,,,,,,/
37,TEST37,text
49,24605597,6,343,343,343,,,3434,,,/

Respuesta1

Pruebe los siguientes cmdlets:

#Get the file's content and join each line with newline character
#because by default splits lines by newline. So, the need to rejoin the lines 
$text = [string]::Join("`n", (Get-Content a.txt))

#Find and replace the pattern, then output the result to file
#The file's content is replaced
[regex]::Replace($text, "^3[^3].+`n^(37.+)", '$1', "Multiline") | Out-file a.txt

Reemplace a.txtcon su nombre de archivo.

información relacionada