Как удалить строку на основе регулярного выражения в Powershell?

Как удалить строку на основе регулярного выражения в Powershell?

Я хочу проверить, есть ли строка над определенной строкой, тогда ок. если иначе, то удалить эту строку и удалить пустое место? Можно ли это сделать в powershell? пожалуйста, помогите

Если перед всеми строками, начинающимися с "^37," если строка начинается с 33, то ОК. Иначе удалите эту строку и удалите пустое место. Теперь в моем файле более ста тысяч случаев, подобных этой проблеме. Пожалуйста, помогите... это очень срочно.

Файл 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,,,/

решение1

Попробуйте следующие командлеты:

#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

Замените a.txtна имя вашего файла.

Связанный контент