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

Frage Entwicklung Batch & Shell

GELÖST

aus mehreren txt. Dateien Zeilen auslesen welche mit der selben Zahl beginnen

Mitglied: 46933

46933 (Level 1)

17.04.2007, aktualisiert 18.04.2007, 6624 Aufrufe, 21 Kommentare

Hallöchen alle zusammen.
Ich bin am ende.
Mein Problem sieht folgender massen aus.
ich habe fünf txt Dateien.
Die einzelnen Datensätze beginnen mit einer zehnstelligen Zahl und sind alle verschieden.
Ich möchte jetzt jedoch nur alle Datensätze auslesen und in die Datei Gesamt.txt speichern, welche als 1 Zahl von den 10 Stellen eine 2 hat.
Alle anderen sollen in eine Datei geschrieben werden mit Namen wertlos.txt.

Leider bin ich am Ende meiner Kräfte und meines Wissen

Vielleicht kann mir jemand helfen.

Schon mal danke im voraus.
Mitglied: GODOFWAR
17.04.2007 um 15:14 Uhr
Also damit ich es richtig verstehe

Du hast 5 dateien
darin sind 10 stellige zahlen
z.b. 1234567891

und es soll nur in die datei GESAMT.txt wenn eine 2 darunter ist?
Bitte warten ..
Mitglied: 46933
17.04.2007 um 15:19 Uhr
mal ein beispiel wie die txt dateien aussehen:

255416789A 09.01.05 23.03.06 ....
2444846610 05.07.06 05.08.06 ....
100486131D 10.02.06 10.03.06 ....
3488519753 20.02.99 20.01.00 .....

so sehen alle txt dateien aus.
Ich möchte aber nur die Zeilen die mit 2 beginnen. (in dem Fall wären es die ersten beiden)
Bitte warten ..
Mitglied: Biber
17.04.2007 um 15:58 Uhr
Moin ginivpj,

willkommen im Forum.

Vom CMD-Prompt aus:
01.
for /f "delims=: tokens=3" %i in ('findstr /b "2" d:\temp\*.txt') do @echo %i >>Gesamt.txt
-bzw. im Batch-
01.
:: ---- snipp GetAllBeginningWith2.bat 
02.
for /f "delims=: tokens=3" %%i in ('findstr /b "2" d:\temp\*.txt') do @echo %%i 
Aufruf mit "GetAllBeginningWith2 >gesamt.txt"

Gruss
Biber
Bitte warten ..
Mitglied: miniversum
17.04.2007 um 15:59 Uhr
01.
@echo off & setlocal enabledelayedexpansion 
02.
for /F "delims=" %%a in ('dir *.txt /b /a-D') do ( 
03.
FOR /F "delims=" %%b in ('type %%a') do ( 
04.
set zeile=%%b 
05.
if [!zeile:~0,1!]==[2] ( 
06.
echo !zeile!>>Gesamt.txt 
07.
) else ( 
08.
echo !zeile!>>wertlos.txt 
09.
)
miniversum

edit: [2] statt [ ]
Bitte warten ..
Mitglied: 46933
17.04.2007 um 16:16 Uhr
soweit hab ich es verstanden.
Leider geht es nicht.
Kann es daran liegen das es auch vorkommt das vereinzelte Zeilen mit einem Buchstaben anfangen?
Bitte warten ..
Mitglied: risc2000
17.04.2007 um 16:33 Uhr
Besorge dir grep und cat für Windows, oder wenn es geht nimm ein Linux. Grep bzw. Cat für Windows müsste mit einer Suchmaschine zu finden sein. Öffne eine Konsole, gehe in das Verzeichnis mit den Textdateien. Und gib dann folgende Befehle ein:

cat * | grep "^2" > Gesamt.txt

und für "Wertlos"

cat * | grep -v "^2" > Wertlos.txt
Bitte warten ..
Mitglied: GODOFWAR
17.04.2007 um 16:34 Uhr
also soweit ich miniversum's lösung angesehen habe geht es darum nur das das erster ZEICHEN EINE ZAHL IST.
Bitte warten ..
Mitglied: 46933
17.04.2007 um 16:36 Uhr
vom cmd prombt klappt es super.
nur verstehe ich das mit dem aufruf nicht.
wo rufe ich das auf?
und kann ich alle anderen Daten in die txt wertlos packen?
Bitte warten ..
Mitglied: 46933
17.04.2007 um 16:40 Uhr
ja und das wird das macht probleme.
leider sind in dateien auch ein paar mit buchstaben am anfang.
Da die dateien aber alle sehr lang sind kann mann sie nicht alle einzeln anfassen und diese daten raus löschen.
aktualisiert werden sie auch immer.
der cmd prombt geht aber wunderbar.
Bitte warten ..
Mitglied: miniversum
17.04.2007 um 16:54 Uhr
ups habs grade korrigiert. immer dieser fehlerteufel.
Aber ich hatte da nicth kontrolliert obs eine Zahl ist sondern ob da ÜBERHAUPT etwas steht

miniversum
Bitte warten ..
Mitglied: Biber
17.04.2007 um 20:44 Uhr
Na ja, mit grep und cat ist es mir auch durchaus sympathisch.

Aber der sympathische Weltmarktführer hat uns doch ein paar Regular-Expression-Features in die Findstr.exe eingebaut.
Nehmen wir die doch:

Demo am CMD-Prompt:
01.
>echo GTE2345>test98.txt 
02.
>echo ABC2888>test99.txt 
03.
>echo 2345888>test97.txt 
04.
 
05.
(=20:42:42  D:\temp=) 
06.
>findstr /B /R "[A-Z]*2" d:\temp\test9?.txt 
07.
d:\temp\test97.txt:2345888 
08.
d:\temp\test98.txt:GTE2345 
09.
d:\temp\test99.txt:ABC2888
Also im Batch
01.
::----------snipp FilterNachDer2.bat 
02.
REM alle Zeilen, die mit "A-Z" gefolgt von einer "2" beginnen ins Töpfchen... 
03.
for /f "tokens=3 delims=:" %%i in ('findstr /B /R "[A-Z]*2" d:\temp\*.txt') do @echo >>gesamt.txt 
04.
REM alle Zeilen, die NICHT mit "A-Z" gefolgt von einer "2" beginnen ins Kröpfchen... 
05.
for /f "tokens=3 delims=:" %%i in ('findstr /V /B /R "[A-Z]*2" d:\temp\*.txt') do @echo >>wertlos.txt
Gruss
Biber
Bitte warten ..
Mitglied: risc2000
17.04.2007 um 23:35 Uhr
Hi Biber, kannte die findstr.exe noch nicht. Nutze in der Regel auch lieber die Mittel welche mir vom OS bereit gestellt werden. Gut zu wissen, dass der sympathische Weltmarktführer eine Alternative zu grep entwickelt und in das OS implementiert hat
Bitte warten ..
Mitglied: Biber
18.04.2007 um 08:50 Uhr
Moin nsc2000,

eine Alternative zu grep entwickelt ...

Na ja, "entwickelt".....das habe ich so nicht geschrieben...
Ich habe bewusst nur geschrieben, dass M$ ein paar Features eingebaut hat, die auf richtigen anderen Betriebssystemen schon im letzten Jahrtausend state of the art waren.

Wie die Redmonder wohl zu dem Sourcecode gekommen sein mögen, darüber möchte ich nicht öffentlich spekulieren.
Vielleicht war es ja eine Eigenentwicklung.

Grüsse
Biber
Bitte warten ..
Mitglied: 46933
18.04.2007 um 09:19 Uhr
Hallo Biber.
Danke erst einmal für deine Mühen.
Ich habs probiert im batch.
Kriege aber nur: ECHO ist eingeschaltet (ON).
?????
Bitte warten ..
Mitglied: Biber
18.04.2007 um 09:34 Uhr
Moin ginivpj,

Kriege aber nur: ECHO ist eingeschaltet (ON).
dann probiere doch erstmal den (auf Deine Pfade angepassten) Kern
01.
findstr /B /R "[A-Z]*2" d:\temp\*.txt
Wie sehen den Deine Pfade und Dein angepasster Batch aus?

Gruss
Biber
Bitte warten ..
Mitglied: 46933
18.04.2007 um 09:54 Uhr
01.
findstr /B /R "[A-Z]*2" H:\privat\test\*.txt 
02.
> 
funktioniert.
Da gibt er mir alle Zeilen mit einer 2 als erstes aus.
01.
findstr /V /B /R "[A-Z]*2" H:\privat\test\*.txt
funktioniert auch.
Da sind alle anderen.
Bitte warten ..
Mitglied: 46933
18.04.2007 um 09:58 Uhr
es hat geklappt.
ich hatte %%i vergessen

noch eine frage.
damit er die batch datei, immer wenn sie ausgeführt wird, die dateien Gesamt.txt und wertlos.txt überschreibt???
Bitte warten ..
Mitglied: Biber
18.04.2007 um 10:15 Uhr
Moin ginivpj,

damit er die batch datei, immer wenn sie ausgeführt wird, die dateien Gesamt.txt und wertlos.txt überschreibt???

Dazu als neue zweite Zeile (nach dem "@echo off) ergänzen
01.
 If exist gesamt.txt del gesamt.txt 
02.
If exist garbage.txt del garbage.txt 
03.
.. 
04.
 
Gruss
Biber
Bitte warten ..
Mitglied: 46933
18.04.2007 um 11:22 Uhr
klasse!!!
es funktioniert alles?
kann ich den pfad den auch so deklarieren das er sich ändern kann?
Mein jetziger Pfad ist ja H:\privat\test
was wenn ich jetzt den ordner test auf k oder i packe?
Muß ich denn da den Pfad in der batch datei jedes mal manuell ändern?
Bitte warten ..
Mitglied: Biber
18.04.2007 um 17:11 Uhr
Moin ginivpj,

Du kannst den Pfad dadurch variabel halten, dass Du
  • ihn nur an einer Stelle im Sourcecode stehen hast und
  • ihn als optionalen Parameter (Parameter mit Default) einrichtest

Beispiel
01.
::----------snipp FilterNachDer2.bat 
02.
@echo off & setlocal 
03.
REM ----ab hier anpassen 
04.
REM optionaler erster Parameter 1 == Pfad, wo die Daten sind 
05.
If [%1]==[] (Set "datenpfad=H:\Privat\test") Else Set "Datenpfad=%1" 
06.
Set "ergebnispfad=X:\Auswert" 
07.
If exist %ergebnispfad%\gesamt.txt del %ergebnispfad%\gesamt.txt 
08.
If exist %ergebnispfad%\garbage.txt del %ergebnispfad%\garbage.txt 
09.
REM ----bis hier anpassen 
10.
REM alle Zeilen, die mit "A-Z" gefolgt von einer "2" beginnen ins Töpfchen... 
11.
for /f "tokens=3 delims=:" %%i in ('findstr /B /R "[A-Z]*2" "%datenpfad%\*.txt"') do @echo >>%ergebnispfad%\gesamt.txt 
12.
REM alle Zeilen, die NICHT mit "A-Z" gefolgt von einer "2" beginnen ins Kröpfchen... 
13.
for /f "tokens=3 delims=:" %%i in ('findstr /V /B /R "[A-Z]*2" "%datenpfad%\*.txt"') do @echo >>%ergebnispfad%\wertlos.txt 
14.
::----------snapp FilterNachDer2.bat
Gruss
Biber
Bitte warten ..
Mitglied: 46933
18.04.2007 um 17:17 Uhr
Hat alles super geklappt.
Ich danke für die schnelle Hilfe!
Echt super Forum.

Gruß gini
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Txt auslesen zähler hinzufügen
gelöst Frage von NewNoobBatch & Shell9 Kommentare

Und zwar möchte ich eine batch schreiben in dem ich alle verknüpfungen suche und dann lösche ausser in bestimmten ...

PHP
TXT Datei auslesen und bestimmte Zeilen in Variable setzen
gelöst Frage von 126594PHP11 Kommentare

Hallo zusammen, vorweg muss ich sagen, ich bin (bis jetzt) absoluter Neuling was PHP angeht. Ich will aus einer ...

Batch & Shell
Einzelne Zeilen in txt Datei speichern und auslesen
gelöst Frage von noah1400Batch & Shell7 Kommentare

Liebe Forum-Mitglieder Ich habe da so eine Frage: Ich bin gerade dabei ein PW abfrage mit Batch zu machen. ...

Batch & Shell
Batch: Txt Datei mit mehreren Zeilen auslesen, wandeln und hintereinander wiedergeben
gelöst Frage von MentacorBatch & Shell4 Kommentare

Hallo zusammen, Ich habe eine Frage zu einem Problem mit meiner Batch Meine Frage: Ist es möglich aus einer ...

Neue Wissensbeiträge
Router & Routing

PfSense als Addon auf QNAP

Information von magicteddy vor 4 StundenRouter & Routing1 Kommentar

Moin, für Spielereien eine ganz nette Idee aber ich fürchte das soetwas auch als echte Firewall genutzt wird: In ...

Datenschutz

Teamviewer kommt für IoT-Geräte wie den Raspberry Pi

Information von magicteddy vor 11 StundenDatenschutz

Moin, jetzt werden IoT Geräte endgültig zur Wanze? Anscheinend kann man auf einem Dashboard seine Geräte visualisieren Ich stelle ...

Microsoft

Letzte Updates für Win10 und Server2016 müssen bei Bedarf über den Update catalogue in den WSUS importiert werden!

Tipp von DerWoWusste vor 16 StundenMicrosoft1 Kommentar

automatisch kommt da nichts an im WSUS und auch nicht im SCCM. Siehe Hinweise zum Bezug der jeweils neuesten ...

Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 3 TagenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Preis für Wartungsvertrag ok?
gelöst Frage von a-za-zNetzwerkmanagement22 Kommentare

Hallo! Mal ne Frage, weil ich mich mit dem akzeptablen Preis für einen Reaktionszeitvertrag nicht auskenne. Meine Firma hat ...

Windows Netzwerk
Ist ein Portforwarding auf einen PC ohne lauschendes Programm ein (großes) Sicherheitsproblem?
Frage von PluwimWindows Netzwerk13 Kommentare

Hallo zusammen, zur Fernwartung eines Rechners an einem anderen Ort nutze ich VNC. Da dieser Rechner einfach nur eine ...

Windows Server
Terminal Server 2016 erkennt Berechtigungen nicht
gelöst Frage von Thomas2Windows Server10 Kommentare

Hallo Administratoren, folgendes Problem stellt sich dar: Es gibt zwei Windows Server 2016, die als Terminal Server fungieren. Jetzt ...

Sonstige Systeme
7-zip: Programm frägt nach Passwort erst bei einzelnen Dateien
Frage von freeskierchrisSonstige Systeme7 Kommentare

Guten Morgen, ich habe ein Problem beim Arbeiten mit 7-zip: Wenn ich die einzelnen Dateien zu einem Archiv verpacke ...