Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Per Batch bestimmte (unbekannte) Textteile aus Textdatei entfernen

Frage Entwicklung Batch & Shell

Mitglied: LuckyB

LuckyB (Level 1) - Jetzt verbinden

23.09.2009 um 15:00 Uhr, 5215 Aufrufe, 10 Kommentare

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.
Mitglied: 81825
23.09.2009 um 16:33 Uhr
Hi,

probiere es doch mal so, nur als Beispiel:
01.
@echo off & setlocal enabledelayedexpansion 
02.
set OrgLine=78.179.120.33,Player1,Admin1,151.47.16.249,[30/7/2009 19:50:16] 
03.
 
04.
For /L %%i in (100,-1,1) do if "!OrgLine:~%%i,1!" == "[" set NewLine=!OrgLine:~0,%%i! 
05.
 
06.
@echo %NewLine% 
07.
pause
Bitte warten ..
Mitglied: bastla
23.09.2009 um 19:03 Uhr
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:
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
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 :
insbesondere Dank an Bastla Biber, den Batch-Gott , aber auch an alle anderen.
Bitte warten ..
Mitglied: Biber
23.09.2009 um 22:15 Uhr
<OT>
@bastla
Zitat von bastla:
P.S.: Ein kleine Korrektur wäre noch anzubringen :
> insbesondere Dank an Bastla Biber, den Batch-Gott , aber auch an alle anderen.

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 Schriftsteller

Grüße
Biber

</OT>
Bitte warten ..
Mitglied: bastla
23.09.2009 um 22:23 Uhr
[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]
Bitte warten ..
Mitglied: 81825
23.09.2009 um 22:27 Uhr
<OT>
Vielleicht steigt er jetzt um auf blutjunge, dunkelblonde Praktikantinnen *gg
</OT>
Bitte warten ..
Mitglied: bastla
23.09.2009 um 22:29 Uhr
[OT]
@81825
Und Du meinst, da würde er als Schüler anfangen ...

Grüße
bastla
[/OT]
Bitte warten ..
Mitglied: 81825
23.09.2009 um 22:32 Uhr
<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>
Bitte warten ..
Mitglied: LuckyB
24.09.2009 um 12:06 Uhr
Hallo nochmal.
Vielen Dank erstmal für die Lösungsansätze.
@81825:
Hm ich glaube mit der Lösung bin ich nicht so gut bedient, da die Banliste ja dynamisch ist,
die IP's und Namen der Spieler und der Admins ändern sich also ständig. Nur der Aufbau der Zeilen
bleibt immer gleich, und die Banliste ist wie gesagt immer mal unterschiedlich lang, es können auch mal
Zeilen doppelt oder mehrfach vorkommen, sry falls die Info gefehlt hatte.
Also müßte ja immer die Variable "Orgline" passend deklariert werden.
@bastla
vielen Dank, mit der Lösung funktioniert es super. Werde gleich mal dran weiterarbeiten
die Banliste auf unsere Site zu bekommen.

lol, ich hab's irgendwie geahnt, daß ich mit dem "Batch-Gott" möglicherweise was lostrete,
aber es war nur für mich persönlich gesprochen, anteilig gesehen hab ich häufiger mit bastla's
Antworten hier im Forum eine Lösung gefunden, aber will da niemandem etwas absprechen.
Auch Biber ist sehr oft mit sehr guten Antworten hier vertreten, das stimmt.

Ok dann vielen Dank nochmal, werd mich erstmal weiter an die Banliste machen, kann ja mal,
falls Interesse besteht, hier einen Link zum späteren Endergebnis posten. Wenn die Liste dann
auf unserer Seite vernünftig abrufbar/einsehbar ist.
Bitte warten ..
Mitglied: 81825
24.09.2009 um 12:18 Uhr
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.
Bitte warten ..
Mitglied: LuckyB
24.09.2009 um 13:35 Uhr
Hey,
bei bastla's Lösung musste ich aber auch ganz schön rumfummeln...
schließlich waren ja noch die doppelten Prozentzeichen im Batch einzufügen,
und die Pfad- bzw. Dateinamen haben ja auch gar nicht gestimmt ....
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...