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, 5319 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
Ordner und Datei Name gleich (BATCH)
gelöst Frage von clragonBatch & Shell12 Kommentare

Hey Leute. Simples Problem; Bat to Exe Converter ist nicht sehr sauber. Trotzdem nützlich. Es räumt die Dateien und ...

Batch & Shell

Merkwürdige Zeilenformatierung in txt Datei

gelöst Frage von miczarBatch & Shell3 Kommentare

Hallo zusammen, ich arbeite mit .cxv Dateien. Das ist nichts anderes wie .txt Dateien nur mit Programmspezifischer Endung. Pro ...

PHP

PHP erzeugte Datei gleich als Email versenden

gelöst Frage von facebrakerPHP4 Kommentare

Guten Morgen, entweder bin ich noch nicht richtig wach oder ich mache mir Probleme, die es nicht gibt. Ich ...

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
Internet

Kommentar: Bundesregierung erwägt Ausschluss von Huawei im 5G-Netz - Unsere Presse wird immer sensationsgieriger

Information von Frank vor 19 StundenInternet2 Kommentare

Hier mal wieder ein schönes Beispiel für fehlgeleiteten Journalismus und Politik zugleich. Da werden aus Gerüchten plötzlich Fakten, da ...

Windows 10

Netzwerk-Bug in allen Windows 10-Versionen durch Januar 2019-Updates

Information von kgborn vor 23 StundenWindows 101 Kommentar

Nur ein kurzer Hinweis für Admins, die Windows 10-Clients im Portfolio haben. Mit den Updates vom 8. Januar 2019 ...

Windows 10

Windows 10 V1809: Rollout ist gestartet - kommt per Windows Update

Information von kgborn vor 1 TagWindows 102 Kommentare

Eine kurze Information für die Admins, die Windows 10 im Programm haben. Microsoft hat die letzte Baustelle (die Inkompatibilität ...

Sicherheit

Heise Beitrag Passwort-Sammlung mit 773 Millionen Online-Konten im Netz aufgetaucht

Information von Penny.Cilin vor 1 TagSicherheit6 Kommentare

Auf Heise Online ist folgender Beitrag veröffentlicht worden: Heise Beitrag passwörter geleakt Ich bin mir jetzt nicht ganz sicher, ...

Heiß diskutierte Inhalte
Windows Server
Uhren gehen immer wieder falsch
Frage von killtecWindows Server23 Kommentare

Hallo, ich habe folgende Konstellation: 1. Physischer DC Div. Virtuelle DC's auf Hyper-V Servern Die Hyper-V-Server, der Physische DC ...

Batch & Shell
Mit findstr batch doppelte zeilen einer txt löschen
Frage von Burningx2Batch & Shell22 Kommentare

Hi Vor einer weile habe ich im netzt einen windows shell befehl gefunden mit welchem man über die konsole ...

Verschlüsselung & Zertifikate
Netzwerkfreigabe Verschlüsselung
Frage von grill-itVerschlüsselung & Zertifikate20 Kommentare

Moin zusammen, sicher nutzen hier die ein oder anderen ein Produkt zur Verschlüsselung von Netzwerkfreigaben/-laufwerken auf denen hochsensible Daten ...

Debian
OpenSSH Login mit Public Key schlägt fehl, mit Passwort funktioniert
gelöst Frage von DKowalkeDebian19 Kommentare

Hallo zusammen, ich hatte hier schon nach einer Anleitung für einen SFTP Server mit Linux gefragt, habe dort auch ...