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

Batch - Zeile suchen und löschen

Frage Entwicklung Batch & Shell

Mitglied: Dani

Dani (Level 5) - Jetzt verbinden

04.05.2006, aktualisiert 06.05.2006, 18801 Aufrufe, 8 Kommentare

Guten Morgen,

ich habe eine Textdatei (logfile). Dort werden beim anmelden einen Eintrag / Benutzer gemacht. Nun möchte ich aber, dass wenn der Benutzer sich abmeldet, dass seine Zeile wieder per Batch gelöscht wird! Das Problem ist ich weiß nicht, wie ich eine Zeile löschen kann!

Jemand einen Vorschlag??


Gruß
Dani
Mitglied: Biber
04.05.2006 um 08:52 Uhr
Moin Dani,

klassischerweise würde man/frau per Batch eine bestimmte Zeile löschen durch ein
find /v /i "eindeutigerSuchtext" textfilename.txt >textfilename.txt
..was bei einem Logfile von ein paar Megabyte nicht sonderlich effizient ist..
-oder-
per Batch oder VBS zeilenweise durch das File wackeln, alle Zeilen lesen und alle Zeilen bis auf die zu löschende eins zu eins wieder rausschreiben.

Im Zusammenhang mit einem Logfile erscheint mir Deine Anforderung hirnrissig ungewöhnlich.
Bist Du sicher, dass Du eine (Text-)Logfile-Mimik brauchst und nicht eine (Semaphoren-) Lockfile-Mimik?

Gruß
Biber
Bitte warten ..
Mitglied: Dani
04.05.2006 um 09:00 Uhr
Moin Dani,

klassischerweise würde man/frau per
Batch eine bestimmte Zeile löschen
durch ein
find /v /i "eindeutigerSuchtext"
textfilename.txt >textfilename.txt
..was bei einem Logfile von ein paar
Megabyte nicht sonderlich effizient ist..
Die Datei hat max. 2MB.

Bist Du sicher, dass Du eine
(Text-)Logfile-Mimik brauchst und nicht eine
(Semaphoren-) Lockfile-Mimik?
Was ist dort der Unterschied?!


Gruß
Dani
Bitte warten ..
Mitglied: Biber
04.05.2006 um 09:54 Uhr
Was ist dort der Unterschied?!

In einem Logfile wird protokolliert, nur am Ende angefügt und nie etwas gelöscht.

In einem Lock-File/einer Semaphorendatei tragen sich Benutzer oder Prozesse ein, die gerade an einer gemeinschaftlich nutzbaren Ressource angemeldet sind und etwas davon in Bearbeitung haben/exclusiv beanspruchen.
(Führt dann z.B. zu solchen Meldungen wie "Datei XY/Datensatz Z kann momentan nicht bearbeitet werden, weil gerade von Benutzer Hamster06 gesperrt" oder ähnlichen.)
Diese Mimik verwenden auch halbstarke Datenbanken wie MS-Access.
Bitte warten ..
Mitglied: Dani
04.05.2006 um 10:37 Uhr
Hi,
ok...thx!! Mein Vorhaben ist vielleicht komisch. Aber es wäre cool, wenn das Löschen einer Zeile in der Textfile ginge.


Gruß
Dani
Bitte warten ..
Mitglied: scriptkiddy
05.05.2006 um 22:04 Uhr
>Hi,
>ok...thx!! Mein Vorhaben ist vielleicht komisch. Aber es wäre cool, wenn das Löschen einer >Zeile in der Textfile ginge.

Um Hier mal Biber zitieren zu dürfen .....

Moin Dani,

klassischerweise würde man/frau per
Batch eine bestimmte Zeile löschen
durch ein
find /v /i "eindeutigerSuchtext"
textfilename.txt >textfilename.txt
..was bei einem Logfile von ein paar
Megabyte nicht sonderlich effizient ist..

Dass es geht hat Biber ja geschrieben (durch einen find befehl.......)
Bitte warten ..
Mitglied: Dani
06.05.2006 um 10:32 Uhr
Hi,
Dass es geht hat Biber ja geschrieben (durch
einen find befehl.......)
soweit ist alles klar. Aber wie lösche ich dann die Zeile aus der log Datei?!


Gruß
Dani
Bitte warten ..
Mitglied: Biber
06.05.2006 um 11:45 Uhr
Moin Dani,

ich versuchs noch mal...
Beispiel: eine Datei "Logout.txt" mit allen Logout-Zeiten.

Ein eindeutiger Eintrag darin sei der vom 26.04.2006.
Den würde ich so finden vom CMD-Prompt aus:
01.
Z:\> 
02.
$cmd$type logout.txt|find "26.04" 
03.
Mi 26.04.2006 11:55:57,80: Hf logged off
Umgekehrt finde ich alle anderen Einträge ("alle außer") mit
01.
Z:\> 
02.
$cmd$type logout.txt|find /v "26.04" 
03.
(Output: ganz ganz lange Liste, poste ich jetzt nicht)
Und diesen Output leite ich wieder um auf die Originaldatei:
01.
Z:\> 
02.
$cmd$type logout.txt|find /v "26.04">logout.txt 
03.
(Test danach: die Zeile vom 26.04.2006 ist nicht mehr drin) 
04.
$cmd$type logout.txt|find  "26.04" 
05.
(--keine Fundstelle-- kein Output)
So würde es gehen, obwohl ich so etwas nie nie nie bei einem Logfile machen würde.

Gruß
Biber
Bitte warten ..
Mitglied: Dani
06.05.2006 um 11:51 Uhr
Hi,
Danke Biber! Jetzt habe ich das richtig verstanden. Vielen Dank für euere Mühen!
Nice WE!!!


Gruß
DAni
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst älteste dateien via batch löschen (6)

Frage von cali169 zum Thema Batch & Shell ...

Batch & Shell
gelöst Suchen und Ersetzen mehrerer Suchbegriffe per Batch (4)

Frage von makroll10 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...