Top-Themen

Aktuelle Themen (A bis Z)

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 txt-Datei mit mehrere gleiche Zeilen durchsuchen und jeweils einmal ausgeben

Mitglied: malleetje

malleetje (Level 1) - Jetzt verbinden

12.03.2008, aktualisiert 14.03.2008, 5291 Aufrufe, 12 Kommentare

Hallo,

habe folgendes Problem: ich möchte aus einen Text die mehrmals gleiche Einträge hat jeweils eins dieser Einträge rausfiltern und in eine andere .txt abspeichern mittel eine Batch-Datei.

Die Daten sehen wie folgt aus:
(Beispiel)
Opel Astra Caravan (1,6)
Opel Astra Caravan (2,0)
Opel Astra Wimbledon (1,6)
Opel Astra Caravan (1,6)
Opel Astra Caravan (2,0)
Opel Astra Caravan (1,6)

In die erstellte Datei sollte dann stehen:
Opel Astra Caravan (1,6)
Opel Astra Caravan (2,0)
Opel Astra Wimbledon (1,6)

Wie wird dass gemacht?

Gruß,

malleetje
Mitglied: bastla
12.03.2008 um 15:05 Uhr
Hallo malleetje und willkommen im Forum!

Versuch es so:
01.
@echo off & setlocal 
02.
set "Quelle=D:\Liste.txt" 
03.
set "Ziel=D:\ListeOhneDuplikate.txt" 
04.
 
05.
echo.>nul 2>"%Ziel%" 
06.
for /f "usebackq delims=" %%i in ("%Quelle%") do findstr /b /e /c:"%%i">nul "%Ziel%" || echo %%i>>"%Ziel%"
Grüße
bastla
Bitte warten ..
Mitglied: miniversum
12.03.2008 um 15:22 Uhr
Versuchs mal damit:
@FOR /F "delims=" %%i in (Autos.txt) do @(find "%%i" "Autos_einzeln.txt">NUL 2>NUL||echo %%i>>Autos_einzeln.txt) 2>NUL

Ups zu lange getippt.... hmm....
Bitte warten ..
Mitglied: bastla
12.03.2008 um 15:30 Uhr
@miniversum

Falls die Liste zB so
Opel Astra Caravan (1,6)
Opel Astra Caravan (2,0) S
Opel Astra Wimbledon (1,6)
Opel Astra Caravan (2,0)
Opel Astra Caravan (1,6)
Opel Astra Caravan (2,0)
Opel Astra Caravan (1,6)
aussähe, bliebe "Opel Astra Caravan (2,0)" auf der Strecke ...

Grüße
bastla
Bitte warten ..
Mitglied: Biber
13.03.2008 um 20:46 Uhr
Moin malleetje, bastla und miniversum,

wenn ich die Aufgabenstellung richtig lese (...in der erstellten Datei soll stehen...),
dann würde ich noch einen SORT reinbringen und es am CMD-Prompt so abfeuern:
01.
>Set q=QuellListe.txt 
02.
>Set z=ZielListe.txt 
03.
>echo\>nul 2>%z% 
04.
>for /f "delims=" %i in ('sort %Q%') do @find "%i" "%Z%">nul || @echo %i>>%z% 
05.
 
06.
(=20:35:10  D:\temp=) 
07.
>type %z% 
08.
Opel Astra Caravan (1,6) 
09.
Opel Astra Caravan (2,0) 
10.
Opel Astra Caravan (2,0) S  [##bastla's Sonderfall##] 
11.
Opel Astra Wimbledon (1,6)
[OT, aber doch ganz passend hier]
Ein neuer M$-CMD-Bug tritt neuerdings (seit irgendeinem KB-Update??) auf, zumindest auf XP-Rechnern:
Ein "echo." funktioniert nicht mehr zum Leerzeilen-Ausgeben.
01.
>echo.>%z% 
02.
Der Befehl "echo." ist entweder falsch geschrieben oder 
03.
konnte nicht gefunden werden.
Statt des Punktes "." direkt nach dem "echo" kann aber nach wie vor eines der anderen bisher funktionierenden undokumentierten Zeichen ("\", "?", .....) verwendet werden, um eine "leere Zeile" auszugeben.
Die Variante, die ich oben verwendet habe...
echo\>nul 2>%z%
...schreibt auch tatsächlich eine 0-Byte-Datei statt eine 2-Byte-Datei mit CRLF.
[/OT]

Grüße
Biber
Bitte warten ..
Mitglied: bastla
13.03.2008 um 21:35 Uhr
@Biber

Auch wenn ich aus dem dargestellten Beispiel die Anforderung "Sortierung" nicht unmittelbar entnehmen kann, ist die Verwendung von "sort" eine elegante Möglichkeit, den "Sonderfall" zu berücksichtigen - die kürzeren (und damit in einer anderen Zeile möglicherweise enthaltenen) Zeilen werden zuerst verarbeitet.

Alternativ wäre man/frau mit "findstr /x" (besser, als in meinem Ansatz oben mit "/b /e") nicht auf die richtige Reihenfolge angewiesen ...
Ein neuer M$-CMD-Bug ...
Den kannte ich noch nicht - damit werden sicher viele ihre Freude haben ...

Grüße
bastla
Bitte warten ..
Mitglied: Biber
14.03.2008 um 09:34 Uhr
Moin bastla,

Den kannte ich noch nicht - damit werden sicher viele ihre Freude haben ...
Oh ja, ich kann diesen Bug jeden Morgen beim Ausführen der Logon-Skripte bewundern...
...seitenweise 'Der Befehl "echo." ist entweder falsch geschrieben...'

Okay, für den Fall oben (leere Zieldatei erzeugen) könnten wir vielleicht ein schlichtes "Type nul>%z%" verwenden,
statt uns mit so so überkandidelten ECHO-Varianten rumzubalgen.

Aber einen ECHO-Bug habe ich noch... zu dem bei Chattern und auch hier im Forum so beliebten Doppel-Caret ("^^")

Try this...
01.
echo ^^^^ works as planned 
02.
^^ works as planned 
03.
 
04.
(= 9:30:06  D:\temp=) 
05.
>echo ^^^^^ works as designed 
06.
^^ works as designed 
07.
 
08.
(= 9:30:27  D:\temp=) 
09.
>echo "^^^^ works as planned" 
10.
"^^^^ works as planned" 
11.
 
12.
(= 9:30:41  D:\temp=) 
13.
>call echo "^^^^ works as designed" 
14.
"^^^^^^^^ works as designed"
Na ja, M$ und seine PraktikantInnen....

Grüße
Biber

@malleetje
BTW, von diesen Anekdoten abgesehen: war ein Lösungsansatz für Dich dabei?
Bitte warten ..
Mitglied: malleetje
14.03.2008 um 11:07 Uhr
Hallo,

Versuch es so:
01.
@echo off & setlocal 
02.
> set "Quelle=D:\Liste.txt" 
03.
> set 
04.
> "Ziel=D:\ListeOhneDuplikate.txt" 
05.
>  
06.
> echo.>nul 2>"%Ziel%" 
07.
> for /f "usebackq delims=" %%i in 
08.
> ("%Quelle%") do findstr /b /e 
09.
> /c:"%%i">nul "%Ziel%" 
10.
> || echo %%i>>"%Ziel%" 
11.
> 
Grüße
bastla

hat das gewünschte Ergebnis gebracht, vielen Dank für die Hilfe! Jetzt habe ich noch eine andere Frage:
die Befehle

start /b xxxxx.exe
SET "test5=C:\Programme\xxxxx\xxxxx.txt"
findstr /c:"Model" %test5% >> %Ziel%
TASKKILL /IM xxxxx.exe

geben mir die benötigte Informationen, allerdings kommt im DOS-Fenster

ERFOLGREICH: Der Prozess "xxxxx.exe" mit PID 1960 wurde beendet.

Kann man den Befehl so gestalten dass diese Meldung nicht gezeigt wird?

Gruß,

M.
Bitte warten ..
Mitglied: malleetje
14.03.2008 um 11:09 Uhr
Hallo,

bin noch nichtso vertraut mit dem Forum, habe leider mein Antwort etwas weiter oben gepostet...

in Kürzen: es hat geklappt!

Gruß,

M.
Bitte warten ..
Mitglied: miniversum
14.03.2008 um 12:36 Uhr
Ändere
TASKKILL /IM xxxxx.exe
in
TASKKILL /IM xxxxx.exe>NUL

Durch das >NUL werden Ausgaben unterdrückt (ins nichts umgeleitet). FehlerMeldungen werden trotzdem ausgegeben.
Bitte warten ..
Mitglied: Biber
14.03.2008 um 12:39 Uhr
Moin malleetje,

danke für die Rückmeldung.
bin noch nichtso vertraut mit dem Forum
Um etwas vertrauter mit diesem Forum zu werden, setze doch bitte diesen Beitrag auf "Gelöst" (anmelden, Beitrag editieren, Häkchen setzen). *gg

Zu Deiner Ach-da-fällt-mir-noch-was-ein-Frage:

Du kann die Bildschirm- und Fehlerausgaben aller CMD-Befehle umleiten.
taskkill /IM whatever.exe >nul 2>&1
.....würde sowohl Bildschirmmeldungen wie auch Fehlernachrichten unterdrücken.
Wenn nur Erfolgsmeldungen unterdrückt werden, aber Fehlerinfos erscheinen sollen:
taskkill /IM whatever.exe >nul

Grüße
Biber
Bitte warten ..
Mitglied: malleetje
14.03.2008 um 14:45 Uhr
[....]
Hallo Biber,

hat geklappt!

Danke

Wenn ich jetzt noch das Häckchen für "Gelöst" finden würde...

[Edit Biber] An der Stelle [...] Komplett-Zitat des vorangegangenen Kommentars gelöscht.[/Edit]
Bitte warten ..
Mitglied: bastla
14.03.2008 um 21:55 Uhr
Hallo malleetje!

Wenn ich jetzt noch das Häckchen für "Gelöst" finden würde...
Wie schon bei Biber zu lesen:
... anmelden, Beitrag editieren, Häkchen setzen
bzw auch https://www.administrator.de/index.php?faq=32

Grüße
bastla

P.S.: Da die Darstellung der Kommentare hier recht übersichtlich ist, genügt es zumeist, nur kurze (und vor allem relevante) Teile vorhergehender Posts zu zitieren ...
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Powershell - durchsuche TXT Datei und füge mehrfach gleiche Werte in eine Zeile zusammenfassen

gelöst Frage von adm2015Batch & Shell6 Kommentare

Ich habe folgende Datei und muss diese umstrukturieren. Hier komme ich nicht weiter. Ich habe eine Datei a.txt mit ...

Batch & Shell

Batch: Mehrere .txt Dateien zu einer zusammenfügen, dabei jeweils die erste Zeile löschen

gelöst Frage von v.piepmatzBatch & Shell5 Kommentare

Hallo, ich bin leider kompletter Neueinsteiger bzgl. batch-Dateien, suche jetzt aber eine Möglichkeit mehrere .txt Dateien, welche in einem ...

Ausbildung

Durchsuchen alle Zeilen einer Textdatei und die gleiche Zeilen herausfiltern und anzeigen

gelöst Frage von MihailAusbildung17 Kommentare

Guten Abend, Ich melde mich ernuet mit der Bitte mir falls möglich zu helfen. Ich muss aus einigen txt-Dateien ...

Windows 7

Txt Datei mit findstr durchsuchen

gelöst Frage von 126594Windows 72 Kommentare

Hallo zusammen! Leider komme ich gerade an meine Grenzen und weiß nicht mehr weiter, jetzt hoffe ich hier, den ...

Neue Wissensbeiträge
Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 15 StundenHumor (lol)3 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 1 TagGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Sicherheit

Intel gibt neue Spectre V2-Microcode-Updates frei (20.02.2018)

Information von kgborn vor 1 TagSicherheit

Intel hat zum 20. Februar 2018 weitere Microcode-Updates für OEMs freigegeben, um Systeme mit neueren Prozessoren gegen die Spectre ...

Microsoft
ARD-Doku - Das Microsoft Dilemma
Tipp von Knorkator vor 1 TagMicrosoft3 Kommentare

Hallo zusammen, vor einigen Tagen lief in der ARD u.a. Reportage. Das Youtube Video dazu dürfte länger verfügbar sein. ...

Heiß diskutierte Inhalte
Server-Hardware
Welche Rolle spielt Design bei Enterprise IT Hardware?
Frage von ApolloXServer-Hardware17 Kommentare

Ich arbeite für einen internationalen Elektronikhersteller in der Forschung und meine Aufgabe ist es, Feedback von Nutzern in Hinsicht ...

Windows Netzwerk
WSUS4 und Windows 10 Updates automatisch installieren
Frage von sammy65Windows Netzwerk15 Kommentare

Hallo miteinander, ich habe mit einen neuen WSUS Server aufgesetzt Server 2016 darauf einen aktuellen WSUS. Grund, wir stellen ...

Switche und Hubs
Cisco SG350X-48 AdminIP in anderes VLAN
Frage von lcer00Switche und Hubs14 Kommentare

Hallo zusammen, ich habe ein Problem mir einem Cisco SG350X-48 bei der Erstinstallation wurde eine IP 192.168.0.254 (Default VLAN ...

Windows Netzwerk
Backup über WAN
Frage von petereWindows Netzwerk11 Kommentare

Hallo, ich muss aus einem entfernten WAN (synchrone 1Gbit) Daten sichern. Dabei handelt es sich sowohl um wenige große ...