Per Batch bestimmte (unbekannte) Textteile aus Textdatei entfernen
Hallo zusammen.
Erstmal ein großes Lob, habe in diesem Forum schon sehr oft Hilfe für meine Fragestellungen gefunden,
insbesondere Dank an Bastla, der Batch-Gott
, aber auch an alle anderen.
Nun komme ich bei einer Frage nicht weiter und hab auch hier im Forum bzw. google nichts passendes gefunden.
Falls die Frage doch schon mal behandelt wurde, dann sry, hab es echt nicht gesehen.
Folgendes Problem :
Ich habe eine Textdatei, die bisher soweit formatiert wurde, daß der Inhalt in folgender Form vorliegt :
Wie Ihr sehen werdet, handelt es sich um eine Ban-Liste eines GameServers, also ist die Liste mal länger
und mal kürzer.
78.179.120.33,Player1,Admin1,151.47.16.249,[30/7/2009 19:50:16]
213.6.67.246,Player2,~AutoBan,Banned for using a aimbot hack[30/7/2009 18:1:17]
18.49.147.213,Player3,~AutoBan,Banned for using a shooting while stung hack[31/7/2009 0:59:36]
76.17.18.210,Player4,Admin2,65.123.16.24,[30/7/2009 19:50:16]
41.200.67.132,Player5,~AutoBan,Banned for using a shooting while stung hack[31/7/2009 2:35:21]
204.172.185.21,Player6,Admin3,65.123.16.24,[30/7/2009 19:50:16]
Das Problem ist nun, das ich die IP's der Admins die hier in der Liste auftauchen, raushaben möchte.
Also in Zeilen 1, 4 und 6 soll der Block mit der IP nach "Admin1" zB gelöscht werden, daß Datum danach aber nicht,
so daß die Liste später mal so aussehen sollte :
78.179.120.33,Player1,Admin1,[30/7/2009 19:50:16]
213.6.67.246,Player2,~AutoBan,Banned for using a aimbot hack[30/7/2009 18:1:17]
18.49.147.213,Player3,~AutoBan,Banned for using a shooting while stung hack[31/7/2009 0:59:36]
76.17.18.210,Player4,Admin2,[30/7/2009 19:50:16]
41.200.67.132,Player5,~AutoBan,Banned for using a shooting while stung hack[31/7/2009 2:35:21]
204.172.185.21,Player6,Admin3,[30/7/2009 19:50:16]
Ich hab es erstmal mit Sed versucht und folgender Zeile :
Sed -e "s/"\,.*\,\["/"\,\["/g;"
Aber dabei löscht er leider alles aus der Zeile bis zum ersten Komma von links, es sieht also so aus dann :
78.179.120.33,[30/7/2009 19:50:16]
Irgendwie komme ich jetzt nicht weiter, hab schon verschieden Kombinationen ausprobiert aber ergebnislos.
Ist vielleicht ein Denkfehler drin ?
Oder sollte man es besser nicht per Sed machen, vielleicht besser mit einer For Schleife und der Delim Funktion ?
Man könnte auch vorher diese Banliste noch anders formatieren, so daß zB. jeder Block, auch in den Zeilen mit "Autoban",
per Komma getrennt wird.
Bin für jede Hilfe sehr dankbar.
Gruß, LuckyB.
Erstmal ein großes Lob, habe in diesem Forum schon sehr oft Hilfe für meine Fragestellungen gefunden,
insbesondere Dank an Bastla, der Batch-Gott
Nun komme ich bei einer Frage nicht weiter und hab auch hier im Forum bzw. google nichts passendes gefunden.
Falls die Frage doch schon mal behandelt wurde, dann sry, hab es echt nicht gesehen.
Folgendes Problem :
Ich habe eine Textdatei, die bisher soweit formatiert wurde, daß der Inhalt in folgender Form vorliegt :
Wie Ihr sehen werdet, handelt es sich um eine Ban-Liste eines GameServers, also ist die Liste mal länger
und mal kürzer.
78.179.120.33,Player1,Admin1,151.47.16.249,[30/7/2009 19:50:16]
213.6.67.246,Player2,~AutoBan,Banned for using a aimbot hack[30/7/2009 18:1:17]
18.49.147.213,Player3,~AutoBan,Banned for using a shooting while stung hack[31/7/2009 0:59:36]
76.17.18.210,Player4,Admin2,65.123.16.24,[30/7/2009 19:50:16]
41.200.67.132,Player5,~AutoBan,Banned for using a shooting while stung hack[31/7/2009 2:35:21]
204.172.185.21,Player6,Admin3,65.123.16.24,[30/7/2009 19:50:16]
Das Problem ist nun, das ich die IP's der Admins die hier in der Liste auftauchen, raushaben möchte.
Also in Zeilen 1, 4 und 6 soll der Block mit der IP nach "Admin1" zB gelöscht werden, daß Datum danach aber nicht,
so daß die Liste später mal so aussehen sollte :
78.179.120.33,Player1,Admin1,[30/7/2009 19:50:16]
213.6.67.246,Player2,~AutoBan,Banned for using a aimbot hack[30/7/2009 18:1:17]
18.49.147.213,Player3,~AutoBan,Banned for using a shooting while stung hack[31/7/2009 0:59:36]
76.17.18.210,Player4,Admin2,[30/7/2009 19:50:16]
41.200.67.132,Player5,~AutoBan,Banned for using a shooting while stung hack[31/7/2009 2:35:21]
204.172.185.21,Player6,Admin3,[30/7/2009 19:50:16]
Ich hab es erstmal mit Sed versucht und folgender Zeile :
Sed -e "s/"\,.*\,\["/"\,\["/g;"
Aber dabei löscht er leider alles aus der Zeile bis zum ersten Komma von links, es sieht also so aus dann :
78.179.120.33,[30/7/2009 19:50:16]
Irgendwie komme ich jetzt nicht weiter, hab schon verschieden Kombinationen ausprobiert aber ergebnislos.
Ist vielleicht ein Denkfehler drin ?
Oder sollte man es besser nicht per Sed machen, vielleicht besser mit einer For Schleife und der Delim Funktion ?
Man könnte auch vorher diese Banliste noch anders formatieren, so daß zB. jeder Block, auch in den Zeilen mit "Autoban",
per Komma getrennt wird.
Bin für jede Hilfe sehr dankbar.
Gruß, LuckyB.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 125615
Url: https://administrator.de/forum/per-batch-bestimmte-unbekannte-textteile-aus-textdatei-entfernen-125615.html
Ausgedruckt am: 23.04.2025 um 22:04 Uhr
10 Kommentare
Neuester Kommentar

Hi,
probiere es doch mal so, nur als Beispiel:
probiere es doch mal so, nur als Beispiel:
@echo off & setlocal enabledelayedexpansion
set OrgLine=78.179.120.33,Player1,Admin1,151.47.16.249,[30/7/2009 19:50:16]
For /L %%i in (100,-1,1) do if "!OrgLine:~%%i,1!" == "[" set NewLine=!OrgLine:~0,%%i!
@echo %NewLine%
pause
Hallo LuckyB und willkommen als Mitglied, hallo greypeter!
Soferne jede Zeile mit einer eckigen Klammer endet, könnte das (mit Direkteingabe an der Kommandozeile) so gehen:
Im Batch wäre für jedes %a bis %e jeweils die Schreibweise mit doppelten Prozentzeichen zu verwenden.
Grüße
bastla
P.S.: Ein kleine Korrektur wäre noch anzubringen
:
Soferne jede Zeile mit einer eckigen Klammer endet, könnte das (mit Direkteingabe an der Kommandozeile) so gehen:
for /f "tokens=1-5 delims=," %a in (BanList.txt) do @(echo %d|findstr /e "]">nul&&echo %a,%b,%c,%d||echo %a,%b,%c,%e)>>BanListNew.txt
Grüße
bastla
P.S.: Ein kleine Korrektur wäre noch anzubringen
insbesondere Dank an Bastla Biber, den Batch-Gott
, aber auch an alle anderen.
<OT>
@bastla
Was würde es mir nützen, ein Gott zu sein, wenn ich trotzdem dauernd rechts überholt werde....
Außerdem: der einzige Experte bin in diesem Seitenarm des Forums nun wahrlich nicht, Kollege.
Lass uns lieber dieses Zitat anwenden
Grüße
Biber
</OT>
@bastla
Zitat von @bastla:
P.S.: Ein kleine Korrektur wäre noch anzubringen
:
> insbesondere Dank anBastla Biber, den Batch-Gott
, aber auch an alle anderen.
P.S.: Ein kleine Korrektur wäre noch anzubringen
> insbesondere Dank an
Was würde es mir nützen, ein Gott zu sein, wenn ich trotzdem dauernd rechts überholt werde....
Außerdem: der einzige Experte bin in diesem Seitenarm des Forums nun wahrlich nicht, Kollege.
Lass uns lieber dieses Zitat anwenden
Sobald man in einer Sache Meister geworden ist, soll man in einer neuen Schüler werden.
Gerhart Hauptmann, deutscher SchriftstellerGrüße
Biber
</OT>
[OT]
@Biber

Grüße
bastla
[/OT]
@Biber
Sobald man in einer Sache Meister geworden ist, soll man in einer neuen Schüler werden.
Was ist demnach Dein nächstes Betätigungsfeld? Grüße
bastla
[/OT]

<OT>
Vielleicht steigt er jetzt um auf blutjunge, dunkelblonde Praktikantinnen *gg
</OT>
Vielleicht steigt er jetzt um auf blutjunge, dunkelblonde Praktikantinnen *gg
</OT>

<OT>
@bastla
Das kann man alles nicht wissen.
Es jibt sone und solche, und denn jibt es noch janz andere, aber det sind die Schlimmsten
Grüße
greypeter
</OT>
@bastla
Das kann man alles nicht wissen.
Es jibt sone und solche, und denn jibt es noch janz andere, aber det sind die Schlimmsten
Grüße
greypeter
</OT>

Hallo, LuckyB,
es macht mir überhaupt nichts aus, dass du glaubst, mein Vorschlag könnte dir nicht helfen. Des Menschen Glaube ist sein Himmelreich.
Meine Vorschläge gehen immer davon aus, dass der Fragesteller in der Lage ist, sich selbst etwas zurechtzufummeln, sind also als Hilfe zur Selbsthilfe gedacht.
Bastla postet immer (oder meistens) fertige Lösungen und fördert dadurch imo die Bequemlichkeit. Ob das nun sinnvoll ist, lasse ich mal offen.
es macht mir überhaupt nichts aus, dass du glaubst, mein Vorschlag könnte dir nicht helfen. Des Menschen Glaube ist sein Himmelreich.
Meine Vorschläge gehen immer davon aus, dass der Fragesteller in der Lage ist, sich selbst etwas zurechtzufummeln, sind also als Hilfe zur Selbsthilfe gedacht.
Bastla postet immer (oder meistens) fertige Lösungen und fördert dadurch imo die Bequemlichkeit. Ob das nun sinnvoll ist, lasse ich mal offen.