Spezifische Zeilen aus Textdatei entfernen
Hallo Community, ich benötige eure Hilfe.
Ich habe eine Textdatei die so aufgebaut ist
Es gibt also am Zeilenanfang einen Bezeichner A1 - Z99.
Wie oben zu sehen gibt es aber auch Zeilen wo nur der Bezeichner vorhanden ist (E6), dahinter aber keine Daten stehen.
Wie bekomme ich es hin, dass genau jene Zeilen aus der Datei entfernt werden?
Ich habe eine Textdatei die so aufgebaut ist
E5 228346 NCF2_rs2274064 UNKNOWN 0.12126
E6
E7 227922 ATP13A4_rs6788448 UNKNOWN
Es gibt also am Zeilenanfang einen Bezeichner A1 - Z99.
Wie oben zu sehen gibt es aber auch Zeilen wo nur der Bezeichner vorhanden ist (E6), dahinter aber keine Daten stehen.
Wie bekomme ich es hin, dass genau jene Zeilen aus der Datei entfernt werden?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 2811012095
Url: https://administrator.de/contentid/2811012095
Ausgedruckt am: 24.11.2024 um 18:11 Uhr
8 Kommentare
Neuester Kommentar
Moin,
mit Powershell und ein bisschen Regex ein Kinderspiel:
Powershell Leitfaden für Anfänger
Regex Tutorial
Gruß Thomas
mit Powershell und ein bisschen Regex ein Kinderspiel:
(Get-Content "C:\Pfad\zur\Datei.txt") -NotMatch "^[A-Z]\d{1,2}$" | Set-Content "C:\Pfad\zur\Output.txt"
Powershell Leitfaden für Anfänger
Regex Tutorial
Gruß Thomas
Moin Uwe,
Stimmt, hab ich glatt übersehen (im Ticker stehen leider die Tags nicht mit dabei).
Gruß Thomas
Stimmt, hab ich glatt übersehen (im Ticker stehen leider die Tags nicht mit dabei).
Gruß Thomas
Moin,
Mit anderen Worten, wenn hinter der gesuchten Zeichenkette nur noch Leerzeichen oder ähnliches folgen, wird die Zeile auch ausgelassen.
Gruß Thomas
\s | beinhaltet Leerzeichen, Tabs, Zeilenümbrüche und Carriage Returns |
* | ist eine Mengenangabe und bedeutet 0 oder mehr (bis es nicht mehr zutrifft). |
Mit anderen Worten, wenn hinter der gesuchten Zeichenkette nur noch Leerzeichen oder ähnliches folgen, wird die Zeile auch ausgelassen.
Gruß Thomas
Zitat von @colinardo:
\s* = Von mir gerne "Spacemonkey" genannt . Habe ich mir hier im Forum angewöhnt da es hier immer wieder mal Kandidaten gibt die Ihre Logs mit Batch schreiben und da dann am Ende unwissend Spaces in die Zeilen echo'n.
Je nachdem, welches Programm man verwendet (oder mit welchen Parameter), muss man damit allerdings vorsichtig sein.\s* = Von mir gerne "Spacemonkey" genannt . Habe ich mir hier im Forum angewöhnt da es hier immer wieder mal Kandidaten gibt die Ihre Logs mit Batch schreiben und da dann am Ende unwissend Spaces in die Zeilen echo'n.
Ich bin damit z.B. bei Notepad++ schon ein paar mal auf die Nase gefallen, bei "\s*$" sind dann nämlich die Zeilenumbrüche mit futsch 😉
grep und sed verabeiten die Daten Zeilenweise, solange man den Parameter -z nicht angibt, daher geht das hier natürlich. Andernfalls müsste man sonst etwa "[ \t]*" verwenden, um nur Leerzeichen und Tabs zu berücksichtigen.
Gruß Thomas