Ich möchte überprüfen, ob die Zeile über einer bestimmten Zeile vorhanden ist, dann ok. Wenn nicht, dann diese Zeile löschen und das leere Leerzeichen entfernen? Kann dies in Powershell gemacht werden? Bitte helfen Sie
Wenn vor allen Zeilen, die mit "^37" beginnen, eine Zeile mit 33 beginnt, dann OK. Andernfalls löschen Sie diese Zeile und entfernen Sie auch das Leerzeichen. In meiner Datei gibt es mittlerweile über hunderttausend Fälle dieses Problems. Bitte helfen Sie ... es ist sehr dringend.
TestData.txt-Datei: -
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,,,/
Antwort1
Versuchen Sie die folgenden 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
Ersetzen Sie es a.txt
durch Ihren Dateinamen.