Bestimmte Werte finden, und ggf. Zeilen löschen mit PowerShell
Beispiel:
Ich habe eine TXT Datei mit folgenden Inhalt:
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!
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!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 1568617663
Url: https://administrator.de/contentid/1568617663
Ausgedruckt am: 19.11.2024 um 07:11 Uhr
4 Kommentare
Neuester Kommentar
Hallo,
zunächst mal gehört es immer noch zum guten Ton wenigstens eine Begrüßung zu schreiben. Und des weiteren:
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
Gruß
Doskias
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 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
Moin
Freut mich das ich helfen konnte
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
Du musst nur in den ersten 3 Zeilen, den Dateipfad und die beiden zu prüfenden Werte eintragen.
Gruß
Doskias
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.
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
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
$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