an34mem
Goto Top

Bestimmte Werte finden, und ggf. Zeilen löschen mit PowerShell

Beispiel:
Ich habe eine TXT Datei mit folgenden Inhalt:

1: 	Text
2: 	TextText
3:	abc/932+932_xy 932w,
4:	abc/959+959_xy 959w,
5:	abc/999+999_xy 999w,
6:	abc/1023+1023_xy 1023w,
7:	abc/1065+1065_xy 1065w,
8:	abc/1119+1119_xy 1119w,
9:	abc/1129+1129_xy 1129w,
10:   TextText
11:	TextText

Angenommen es wird 960w, und 1075w, in 3 - 9 gesucht.
Beides ist nicht vorhanden, und somit sollen alle Zeilen ab:
abc/959+959_xy 959w,
bis
abc/1119+1119_xy 1119w,
bestehen bleiben

Wäre das mit PowerShell möglich?
Wie könnte man diese Sache angehen? Leider habe ich überhaupt keinen Ansatz....
Über eure Hilfe würde ich mich sehr freuen, und vielen Dank für einen Tipp!

Content-ID: 1568617663

Url: https://administrator.de/contentid/1568617663

Ausgedruckt am: 19.11.2024 um 07:11 Uhr

Doskias
Doskias 29.11.2021 um 21:02:01 Uhr
Goto Top
Hallo,

zunächst mal gehört es immer noch zum guten Ton wenigstens eine Begrüßung zu schreiben. Und des weiteren:

Wäre das mit PowerShell möglich?
alles ist mit PowerShell möglich face-smile

Wie könnte man diese Sache angehen? Leider habe ich überhaupt keinen Ansatz....
Überhaupt keinen Ansatz ist ja schonmal so gut wie unmöglich. Fang doch einfach mal mit der einfachsten Frage an: Wie kriegst du den Inhalt der Datei in eine Powershell-Variable. Suchbegriffe:
TXT-Datei in Powershell einlesen
Dan weiter google Fragen:
Wie ersetze ich Werte in Powershell? Oder: Wie lösche Ich werte in Powershell?

Dann formulier deine Frage doch bitte präziser. Was mir nicht klar ist:
1. Sind die Dateien immer 11 Zeilen lang
2. Willst du immer Zeile 1&2 und 10&11 behalten oder immer die ersten beiden und die letzten beiden
Über eure Hilfe würde ich mich sehr freuen, und vielen Dank für einen Tipp!
hast du ja schon bekommen ;)

Gruß
Doskias
AN34Mem
AN34Mem 30.11.2021 um 05:42:11 Uhr
Goto Top
Hallo,

der Tipp ist genial Google zu fragen wie man Werte in PowerShell ersetzt, oder diese ggf. löscht.
Sehr hilfreich. Nun habe ich wenigstens einen Ansatz.

Da es zum guten Ton gehört: Danke.
Doskias
Doskias 30.11.2021 um 08:53:08 Uhr
Goto Top
Moin
Zitat von @AN34Mem:
Hallo,
der Tipp ist genial Google zu fragen wie man Werte in PowerShell ersetzt, oder diese ggf. löscht.
Sehr hilfreich. Nun habe ich wenigstens einen Ansatz.
Da es zum guten Ton gehört: Danke.

Freut mich das ich helfen konnte face-smile
Aber jetzt mal Spaß beiseite. Überhaupt keinen Ansatz zu haben ist in PowerShell so gut wie unmöglich. Woran scheitert es denn? Sind es deine PS-Kentnisse? Kennst du die Befehle nicht? Und die Frage zu den zu behaltenen Zeilen hast du auch nicht beantwortet. Wenn du immer nur die ersten 3 und die letzten drei behalten möchtest, wenn beide Werte nicht enthalten sind, habe ich mir mal erlaubt kurz ein einfaches und für Einsteiger verständliches Skript zu schreiben. Und ja, es ginge auch bedeutend kürzer face-wink

$Pfad="C:\test\Original.txt"  
$Wert1='960w'    
$Wert2='1075w'  
$Ergebnis_Wert1=0
$Ergebnis_Wert2=0
$Ergebnis_gesamt=0

$Inhalt=get-content $Pfad

foreach ($zeile in $inhalt)
{
if ($zeile -match $wert1)
{
$Ergebnis_Wert1=1
}
if ($zeile -match $wert2)
{
$Ergebnis_Wert2=1
}
}
$Ergebnis_gesamt=$Ergebnis_Wert1+$Ergebnis_Wert2
if ($Ergebnis_gesamt -eq 0)
{
$Zeilen=$inhalt.Length
$Inhalt > $Pfad
$Inhalt[1] >> $Pfad
$Inhalt[2] >> $Pfad
$Inhalt[$Zeilen-3] >> $Pfad
$Inhalt[$Zeilen-2] >> $Pfad
$Inhalt[$Zeilen-1] >> $Pfad
}

Du musst nur in den ersten 3 Zeilen, den Dateipfad und die beiden zu prüfenden Werte eintragen.

Gruß
Doskias
Doskias
Doskias 02.12.2021 um 21:31:43 Uhr
Goto Top
Vielleicht kannst du das Ergebnis nach unserem längeren PN-Austausch ja hier der Vollständigkeit halber noch posten face-wink