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

Frage Entwicklung Batch & Shell

Mitglied: malleetje

malleetje (Level 1) - Jetzt verbinden

12.03.2008, aktualisiert 14.03.2008, 5286 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 http://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
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 ...

Windows 7
Jeweils gleiche Datei in User-Profile
Frage von DanielBodenseeWindows 74 Kommentare

Hallo zusammen, ich bin in unserem Firmennetzwerk auf der "Suche" nach Notebooks, die von mehr als einem Anwender genutzt ...

Neue Wissensbeiträge
Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 19 StundenViren und Trojaner1 Kommentar

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 23 StundenRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 3 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 5 TagenWebbrowser8 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Heiß diskutierte Inhalte
Batch & Shell
Trusted Sites für alle User auf dem PC einpflegen
Frage von xXTaKuZaXxBatch & Shell12 Kommentare

Aufgabestellung: Es sollen auf 1 PC (bzw. mehreren PCs) vertrauenswürdige Sites per Powershell eingetragen werden, die für alle User ...

Voice over IP
Telefonstörung - Ortsrufnummern kein Verbindungsaufbau
Frage von Windows10GegnerVoice over IP10 Kommentare

Hallo, sowohl bei uns als auch beim Opa ist es über VoIP nicht möglich Ortsrufnummern anzurufen. Es kommt nach ...

Vmware
DOS 6.22 in VMWare mit CD-ROM
gelöst Frage von hesperVmware10 Kommentare

Hallo zusammen! Ich hab ein saublödes Problem. Es ist eine VMWare mit DOS 6.22 zu erstellen auf dem ein ...

Windows 10
Probleme mit Dateien, deren Pfad + Dateiname länger als 256 Zeichen sind
Frage von FalaffelWindows 109 Kommentare

Guten Tag, unter Windows 10 scheint es immer noch das Problem zu geben, dass der Pfad + Dateiname einer ...