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

Daten auslesen

Frage Entwicklung Batch & Shell

Mitglied: Rindercountry

Rindercountry (Level 1) - Jetzt verbinden

24.09.2009, aktualisiert 27.10.2009, 3890 Aufrufe, 5 Kommentare

Hallo. Ich hab ein Problem mit daten aus textdateien und suche eine Lösung.
Ich hoffe das mir da irgendwer helfen kann.
Danke schonmal im voraus.

Mein Problem sieht folgendermaßen aus:

da ich leider keine Programmierkenntnisse besitze, bitte ich um eure Hilfe.

Ich habe einen Ordner mit zum Beispiel 200 Textdatein (können auch mehr oder weniger sein)
ich brauche ein Tool das aus jeder dieser Textdatein die Daten der kompletten zweiten Zeile (unabhängig was darin steht) kopiert und nacheinander in eine neue Textdatei oder exeltabelle eingefügt.
Die Dateien die in diesem ordener sind alles Textdateien die allerdings unterschiedliche Dateiendungen besitzen können also kein txt sondern zb. "DC" , "FP" , "OT" oder "NC".
Also egal wie die Endung ist aus jeder beliebigen datei in dem ordner die bestimmte zeile kopieren.

Beispiel:

Quelldatei 1:

Zeile1: irgendwelche daten
Zeile2: Text und zahlen gegebenenfalls sonderzeichen wie ( ) "zb:1234 (abcd)"
Zeile3: irgendwelche daten
...
...

Quelldatei 2:

Zeile1: irgendwelche daten
Zeile2: Text und zahlen gegebenenfalls sonderzeichen wie ( ) "zb:4321 (abcd)"
Zeile3: irgendwelche daten
...
...

Quelldatei 3:

Zeile1: irgendwelche daten
Zeile2: Text und zahlen gegebenenfalls sonderzeichen wie ( ) "zb:1234 (dcba)"
Zeile3: irgendwelche daten
...
...


Zieldatei:

1234 (abcd)
4321 (abcd)
1234 (dcba)

mir wäre zum Beispiel auch eine Art Makro für Excel sehr recht das die Daten kopiert und in eine Excel Tabelle einfügt statt in eine Textdatei, muss aber nicht sein.

wenn es möglich ist wäre es schön wenn man:

- den Ordner in dem sich die Textdatein befinden,
- die zeile (zb.: Zeile2 oder Zeile3 oder.... die kopiert werden soll,
- Namen und Pfad der Zieldatei

wählen könnte.

Ich weiß nicht ob so etwas überhaupt so einfach und ohne größeren Aufwand möglich ist und hoffe das mir da jemand weiterhelfen kann.
Ich bedanke mich schon einmal im Voraus und wünsche allen noch einen schönen Tag.

Mfg Rindercountry
Mitglied: Biber
24.09.2009 um 20:48 Uhr
Moin Rindercountry,

willkommen im Forum.

Regelmäßig in unseren Projektbesprechungen, wenn die tollen Powerpointfolien im corporate design aufgelegt und durchgeklickt werden....
... kommt nach den ersten 3 Klötzchenbildern mit dem GROSSEN Zusammenhang die etwas detailliertere Konzeptdarstellung ....
.... und IMMER auf dieser Folie 4 ist so ein dicker spiralförmiger Pfeil von A nach B.

Auch ohne Beschriftung weiss immer jeder den Anwesenden: "Jepp, genau HIER passiert offensichtlich ein kleines Wunder".

Wie ich soeben gelernt habe, geht das auch ohne PowerPoint.
....
Quelldatei 3:
---
Zeile1: irgendwelche daten
Zeile2: Text und zahlen gegebenenfalls sonderzeichen wie ( ) "zb:1234 (abcd)"
Zeile3: irgendwelche daten
...
...
Zieldatei:
---
1234 (abcd)
4321 (abcd)
1234 (dcba)

Ah ja.
Der Algorithmus, um von A bzw der Quelldatei-Zeile #2 nach B bzw auf den Bolzen "1234 (abcd)" zu kommen ist...?
Intuition? Internes Applikationswissen? Künstliche Intelligenz?

Wenn der Aufbau der Zeile 2 (oder welcher auch immer) keine beschreibbare Struktur hat, dann können wir Kram den Hasen geben.
Ober zumindest nicht automatisiert verarbeiten.

Die jeweils 2. Zeilen rausflöhen aus den Dateien und in eine neue Datei schreiben ist schnell gemacht.
Das sollte ein Oneliner vom CMD-Prompt aus belegen:
01.
for /f "delims=: tokens=3* " %i in ('findstr /n "." e:\schnipsel\quelldat*.*^|find ":2:"') do @echo %j
Output wäre bei Deinen 3 Beispieldateien unter den Namen e:\schnipsel\quelldatei1.txt /...2.bla, ...3.Blubb:
01.
Text und zahlen gegebenenfalls sonderzeichen wie ( ) "zb:1234 (dcba)" 
02.
Text und zahlen gegebenenfalls sonderzeichen wie ( ) "zb:4321 (abcd)" 
03.
Text und zahlen gegebenenfalls sonderzeichen wie ( ) "zb:1234 (abcd)"
....wobei aber schon deutlich wird, dass die Information, welche Zeile aus welcher Quelldatei kommt verloren geht.

Auch diesen pilpul bekommen wir schnell gebacken:
- den Ordner in dem sich die Textdatein befinden,
- die zeile (zb.: Zeile2 oder Zeile3 oder.... die kopiert werden soll,
- Namen und Pfad der Zieldatei

Aber die Zeilenzerlegung ist nicht definiert.

Bitte um etwas genauere Beschreibung der Anforderung.

Grüße
Biber
Bitte warten ..
Mitglied: 16568
24.09.2009 um 21:03 Uhr
Zitat von Biber:
...
Die jeweils 2. Zeilen rausflöhen aus den Dateien und in eine
neue Datei schreiben ist schnell gemacht.
Das sollte ein Oneliner vom CMD-Prompt aus belegen:
01.
> for /f "delims=: tokens=3* " %i in ('findstr /n 
02.
> "." e:\schnipsel\quelldat*.*^|find ":2:"') do 
03.
> @echo %j 
04.
> 

Wenn ich sowas lese, frage ich mich immer, ob das noch zur Programmierung, oder schon zur Quanten-Physik gehört :-p


Lonesome Walker
Bitte warten ..
Mitglied: Rindercountry
24.09.2009 um 21:53 Uhr
danke erstmal. also der aufbau ist folgendermaßen:

in der 1. zeile steht immer %
in der 2. zeile steht immer "O11111111 (beliebiger text)"

ich brauch keinen bezug zur quelldatei es muß nicht vermerkt werden aus welcher datei welche zeile stammt ich will nur eine übersicht aller dateien im ordner erstellen und in einer datei aufgelistet haben. weil in jeder datei in der 2. zeile beschrieben steht um was es genau geht.
die zweite zeile beginnt immer mit O der nummernfolge (1 - max. 8 stellen) und dem kommentar in klammern beliebig lang. O ist immer gleich, die zahl und der kommentar verschieden.
Bitte warten ..
Mitglied: Biber
28.09.2009 um 07:28 Uhr
Moin Rindercountry,

sorry, ich hatte den Beitrag irgendwie aus den Augen verloren.

Eigentlich lohnt es sich wirklich nicht, dafür einen Batch zu schreiben - es wird nach dem, was bisher ist, nicht mehr als ein Oneliner.
Aber okay, im Batch kann ich ihn über mehrere Zeilen etwas lesbarer formatieren.

Wenn ich die oben stehende CMD-Zeile als Batch speichere UND noch eine weitere Konvertierung der Ergebniszeilen 8im Beispiel oben ja die jeweils 2. Zeilen) vorsehe, ergibt sich auch gerade mal:

01.
::---- Rindercountry.cmd ------- 
02.
@echo off & setlocal 
03.
@FOR /F "delims=: tokens=3* " %%i IN ( 
04.
    'findstr /n "." e:\schnipsel\quelldat*.*^|find ":2:"' 
05.
    ) DO @FOR /F "tokens=1,*" %%a in ("%%j") do @echo %%a %%b 
-- bzw. paramteergesteuert--
01.
::---- Rindercountry2.cmd ------- 
02.
@FOR /F "delims=: tokens=3* " %%i IN ( 
03.
    'findstr /n "." "%~1"^|find ":%2:"' 
04.
    ) DO @FOR /F "tokens=1,*" %%a in ("%%j") do @echo %%a %%b  
Angewandt auf die angelisteten Quelldateien:ergibt sich:
01.
>findstr "." e:\schnipsel\quellda*.* 
02.
e:\schnipsel\Quelldatei3.txt:irgendwelche daten 
03.
e:\schnipsel\Quelldatei3.txt:O333 
04.
e:\schnipsel\Quelldatei3.txt:irgendwelche daten 
05.
e:\schnipsel\Quelldatei2.txt:irgendwelche daten 
06.
e:\schnipsel\Quelldatei2.txt:O222 (beliebiger text zu O222) 
07.
e:\schnipsel\Quelldatei2.txt:irgendwelche daten 
08.
e:\schnipsel\Quelldatei1.txt:irgendwelche daten 
09.
e:\schnipsel\Quelldatei1.txt:O11111111 (beliebiger text zu O11111111) 
10.
e:\schnipsel\Quelldatei1.txt:Zeile3: irgendwelche daten 
11.
 
12.
(= 7:14:34  D:\temp=) 
13.
>e:\schnipsel\rindercountry 
14.
O333 
15.
O222 (beliebiger text zu O222) 
16.
O11111111 (beliebiger text zu O11111111) 
17.
 
18.
(= 7:14:42  D:\temp=) 
19.
>e:\schnipsel\rindercountry2 e:\schnipsel\quellda*.* 2 
20.
O333 
21.
O222 (beliebiger text zu O222) 
22.
O11111111 (beliebiger text zu O11111111)
Aber: die Ausgabe, hier nochmal getrennt in Token %%a und %%b unterscheidet sich ja kein Stück von der Ausgabe OHNE die zweite FOR-Anweisung.
Ist also mehr als Basis für künftige Erweiterungen gedacht.
(für Excel/eineCSV-Datei kannst Du z.B. zwischen %%a und %%b ein Komma statt ein Leerzeichen setzen, aber das brauch ich wohl nicht vorkaspern.

Falls es Dir mit festen Pfad/Dateiangaben und Zeilennummern zu inflexibel ist und mit Parametern zu unübersichtlich, dann kannst Du auch die Dateinamen/die Zeilennummern mit den Befehl "SET /P" abfragen.
Siehe dazu die Hilfe von SET am CMD-Prompt (Set /P).

Ich kann mir BTW, wenn die Ergebnisdaten so schlicht strukturiert sind, eigentlich gar nicht vorstellen, für welche weitergehende Analyse denn so ein Riesen-Excelklotz nötig sein mag. Ich denke, auch die restlichen Fragestellungen an diese extrahierten Daten sollten mit FindStr und Sort on the fly beantwortbar sein.

Grüße
Biber
Bitte warten ..
Mitglied: Rindercountry
28.09.2009 um 17:50 Uhr
ich danke dir. ich denke mit der anleitung bekomm ich des hin.
wie gesagt war da komplett planlos, hab mich daraufhin auch erstmal bissel belesen was die grundlagen betriftt. Wenn man nix mit zu tun hat iss des alles fachchinesisch

Mfg Und 1000 dank
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Daten mit Mediainfo auslesen (17)

Frage von Dr.Byte zum Thema Batch & Shell ...

Batch & Shell
gelöst BATCH: Daten aus Textdatei auslesen und in neue Textdatei separieren (9)

Frage von Manuel1234 zum Thema Batch & Shell ...

Windows Userverwaltung
gelöst Ordnergruppenfreigaben in CSV oder HTML auslesen (3)

Frage von JafThomas zum Thema Windows Userverwaltung ...

Neue Wissensbeiträge
Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Internet
gelöst Jeden morgen Internet-Probleme (56)

Frage von pjrtvly zum Thema Internet ...

Server-Hardware
HP DL380 G7: Booten vom USB via USB 3.1-PCI-e Karte möglich? (24)

Frage von Paderman zum Thema Server-Hardware ...

Windows 7
Bluesreens unternehmensweit (22)

Frage von SYS64738 zum Thema Windows 7 ...

LAN, WAN, Wireless
gelöst IP Adressen - Modem - Switch - Accesspoint (22)

Frage von teuferl82 zum Thema LAN, WAN, Wireless ...