lawlxdd
Goto Top

Zeilen Bearbeitung

Ich bin relativ neu in eurem Forum und habe trotzdem direkt zwei Fragen :P.

Also Ich muss ein paar Texte bearbeiten.
Diese Texte sind meistens so aufgebaut

Text1:text1
Text2:text2
Text3:
Text4:text4

Da in der Zeile "Text3" das Format nicht stimmt (Format sollte Text3:text3" sein) möchte ich diese Zeilen automatisch löschen.
Also so dass ich später sowas hab:

Text1:text1
Text2:text2
Text4:text4

Also im Endeffekt soll jede Zeile, wo nach dem Doppelpunkt nichts mehr steht, gelöscht werden.



Und dann bräuchte ich nochmal eure Hilfe:

Wenn in einer Zeile kein bestimmtes Zeichen vorkommt, soll sie auch gelöscht werden.
Wenn z.B ein Text so aufgebaut ist

Text1@text1
Text2text2
Text3@text3

Also hier wäre es z.B das @ Zeichen was da nicht vorkommt. Diese Zeile (Text2text2) sollte automatisch gelöscht werden.

Ich werde hier nochmal später vorbeischauen. Wenn ihr Fragen habt, schreibt einfach rein =) und wer die antwort kennt kann auch gleich reinschreiben :D

Vielen dank für eure Hilfe

Content-Key: 122498

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

Printed on: April 23, 2024 at 15:04 o'clock

Member: bastla
bastla Aug 11, 2009 at 12:50:14 (UTC)
Goto Top
Hallo lawlxDD und willkommen im Forum!

Sollte sich mit zwei Einzeilern machen lassen:
findstr /v /e ":" DateiAlt.txt>DateiNeu.txt
bzw
findstr "@" DateiAlt.txt>DateiNeu.txt
Grüße
bastla
Member: lawlxDD
lawlxDD Aug 18, 2009 at 14:52:20 (UTC)
Goto Top
Hi

Okay das funktioniert schonmal Prima! Danke

Aber habe mittlerweile noch ein Problem: Wie kann ich die Zeilen löschen in der z.B 3x der Buchstabe "b" drinne vorkommt löschen? Also nicht das nacheinander "bb" steht sondern so z.B.:

testBtest
testBtestBtest
testBtest

Jetzt müsste die Zeile "testBtestBtest" gelöscht werden.
Wäre das möglich?

gruß lawlxDD
Member: Biber
Biber Aug 18, 2009 at 16:18:15 (UTC)
Goto Top
Moin lawlxDD,

wer schickt Dich denn mit solchen kranken Anforderungen los?

Ich meine, lösbar mag das ja sein, aber bis heute nachmittag dachte ich, dass derartige Dateien und vor allem derartige Nachbearbeitungen wenn überhaupt nur ganz am äußersten Rand unserer Galaxie vorkommen.
Und nur ganz, ganz selten unseren kleinen blauen Planeten streifen.

Andererseits...
Guido Westerwelle hat es ja auch irgendwie hierher geschafft.

Was steckt denn da für ein reales Problem dahinter und was für ein abgefahrener Prozess?

Oder ist das Ganze mehr so eine Frage der Art "Ich hab schon oft überlegt, ob ein Meerschweinchen mit einem Toaster auf dem Rücken schwimmen kann?"

Eine mögliche Lösung wäre eine Findstr-Abfrage mit RegEx:
[Demo am CMD-Prompt; ">" kennzeichnet eine einzugebende Zeile]
(=18:20:55  D:\temp=)
>findstr /n /i /R "b[^b].[^b]*b" btestb.txt  
2:testBtestBtest
3:testBtestblubb
4:blubb
6:testbtestbtest

(=18:21:56  D:\temp=)
>type btestb.txt
testBtest
testBtestBtest
testBtestblubb
blubb
lubb
testbtestbtest

Das zeigt das Finden aller betreffenden Zeilen.
Das "Löschen" aller Zeilen wäre entsprechend bastlas Beispielen mit Schalter /v statt Schalter /n.


Grüße
Biber
[Edit] Ich bin von ZWEI nicht aufeinanderfolgenden "b"s ausgegangen wie im Beispiel oben.
Nicht von DREI "b"s wie in der Anforderungsbeschreibung.
[/Edit]
Member: bastla
bastla Aug 18, 2009 at 16:34:30 (UTC)
Goto Top
Hallo lawlxDD!
Jetzt müsste die Zeile "testBtestBtest" gelöscht werden.
Wenn tatsächlich face-wink 3x "B" (oder auch "b") vorkommt, wird die Zeile damit herausgefiltert:
findstr /v /i "b.*b.*b" DateiAlt.txt>DateiNeu.txt
Info dazu mit "findstr /?" bzw mit einer Suche nach "regular expression" / "reguläre Ausdrücke" ...

Grüße
bastla

[Edit] @Biber: Dass ich, als ich mit meiner Antwort begonnen habe, Deinen Kommentar nicht gesehen habe, lässt zwei Schlüsse zu, von denen mir keiner gefällt ... :[/Edit]