Eine TXT-Datei auslesen und nach gesuchten Inhalt die Zeile in eine andere TXT-Datei einfügen
Hallo Zusammen,
habe folgendes Problem und hoffe ihr habt eine Idee.
Ich erhalte von einem Programm eine TXT-Datei zur Verfügung und muss nach dem Inhalt die Datei durchsuchen und dann die Zeilen in andere TXT-Datei speichern.
so ungefähr sieht der Inhalt der Datei aus:
PROGRAMM 0014 DATUM PERSONALNR ORT
PROGRAMM 0015 DATUM PERSONALNR ORT
PROGRAMM 0014 DATUM PERSONALNR ORT
PROGRAMM 0014 DATUM PERSONALNR ORT
PROGRAMM 0015 DATUM PERSONALNR ORT
PROGRAMM 0015 DATUM PERSONALNR ORT
PROGRAMM 0014 DATUM PERSONALNR ORT
PROGRAMM 0003 DATUM PERSONALNR ORT
PROGRAMM 0014 DATUM PERSONALNR ORT
PROGRAMM 0003 DATUM PERSONALNR ORT
usw.
Ich muss aus der Datei nach dem 0014, 0015 und 0003 suchen und die Zeilen jeweils in Verschiedene TXT-Dateien speichern.
Problem ist aber auch, dass die Zahlen 0014, 0015 und 0003 auch in der PersonalNr auftauschen könnten und die sollen nicht beachtete werden.
Nur die in der zweiten Spalte.
Am besten wäre so eine BATCH-Datei, die ich dann über Windows-Aufgabenplanung ausführen könnte.
Das Auslesen und Aufteilen muss ich dann irgendwie automatisieren und automatisch ausführen lassen.
Könnt ihr mir weiterhelfen?
Danke im Voraus!
Gruß
Dennis
habe folgendes Problem und hoffe ihr habt eine Idee.
Ich erhalte von einem Programm eine TXT-Datei zur Verfügung und muss nach dem Inhalt die Datei durchsuchen und dann die Zeilen in andere TXT-Datei speichern.
so ungefähr sieht der Inhalt der Datei aus:
PROGRAMM 0014 DATUM PERSONALNR ORT
PROGRAMM 0015 DATUM PERSONALNR ORT
PROGRAMM 0014 DATUM PERSONALNR ORT
PROGRAMM 0014 DATUM PERSONALNR ORT
PROGRAMM 0015 DATUM PERSONALNR ORT
PROGRAMM 0015 DATUM PERSONALNR ORT
PROGRAMM 0014 DATUM PERSONALNR ORT
PROGRAMM 0003 DATUM PERSONALNR ORT
PROGRAMM 0014 DATUM PERSONALNR ORT
PROGRAMM 0003 DATUM PERSONALNR ORT
usw.
Ich muss aus der Datei nach dem 0014, 0015 und 0003 suchen und die Zeilen jeweils in Verschiedene TXT-Dateien speichern.
Problem ist aber auch, dass die Zahlen 0014, 0015 und 0003 auch in der PersonalNr auftauschen könnten und die sollen nicht beachtete werden.
Nur die in der zweiten Spalte.
Am besten wäre so eine BATCH-Datei, die ich dann über Windows-Aufgabenplanung ausführen könnte.
Das Auslesen und Aufteilen muss ich dann irgendwie automatisieren und automatisch ausführen lassen.
Könnt ihr mir weiterhelfen?
Danke im Voraus!
Gruß
Dennis
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 517580
Url: https://administrator.de/contentid/517580
Ausgedruckt am: 22.11.2024 um 12:11 Uhr
11 Kommentare
Neuester Kommentar
Powershell Einzeiler
Get-Content Datei.txt | group {[regex]::Match($_,'.*?(\d{4})').Groups[1].Value} | %{$_.Group | Set-Content "$($_.Name).txt"}
Get-Content Datei.txt
group {[regex]::Match($_,'.*?(\d{4})').Groups[1].Value
}Das Ergebnis ist ein Object mit jeweils den 4 Digits als Array-Element und einer Property namens Group welche die Zeilen der jeweiligen Nummer enthalten
Das Zwischenergebnis sieht dann so aus:
Count Name Group
----- ---- -----
4 0014 {xPER 0014 20191121 00596832 Dortmund, xPER 0014 20191121 00000387 Castrop, xPER 0014 20191121 00578325 D...
4 0003 {xPER 0003 20191121 00004925 Dortmund, xPER 0003 20191121 00004925 Dortmund, xPER 0003 20191121 00004925 ...
3 0015 {xPER 0015 20191121 00412954 Bruenning, xPER 0015 20191121 00443754 Dortmund, xPER 0015 20191121 00412954...
%{$_.Group | Set-Content "$($_.Name).txt"
}Ergebnis sind in dem Fall 3 Textdateien mit jeweils nur den Einträgen zu dessen Nummer:
Was sollte das bringen? Das Ergebnis wäre gleich wie die Quelldatei außer das es sortiert untereinander steht.
Wenn wirklich nur die Datensätze 0015, 0014 und 0003 entnommen werden sollen dann geht's so
Ablage der Dateien im Beispiel im der aktuelle Ordner von dem aus das Skript ausgeführt wird, ansonsten Pfad mitgeben.
Wenn wirklich nur die Datensätze 0015, 0014 und 0003 entnommen werden sollen dann geht's so
Get-Content "Datei.txt" | ?{[regex]::Match($_,'.*?(\d{4})').Groups[1].Value -in @('0014','0015','0003')} | Set-Content "zusammenfassung.txt"
Zusammenfassen von Dateien ist leicht, hier z.B
alle txt Dateien eines bestimmten Ordners zusammenfassen
alle txt Dateien eines bestimmten Ordners zusammenfassen
Get-Content "d:\Ordner\*.txt" | Set-Content "D:\merged.txt"
Einfach die Pfade hintereinander mit Komma getrennt schreiben, Get-Content akzeptiert hier Arrays
Lesen hilft auch
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell. ...
Get-Content -Path ("d:\0015.txt","d:\0014.txt","d:\0003.txt") | Set-Content "D:\merged.txt"
Lesen hilft auch
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell. ...