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

Zeilen aus Text Datei nach Datum und Uhrzeit sortieren lassen

Frage Entwicklung Java

Mitglied: Power-Poler

Power-Poler (Level 1) - Jetzt verbinden

15.04.2013, aktualisiert 19:26 Uhr, 3566 Aufrufe, 11 Kommentare, 2 Danke

Abend,
Habe eine txt Datei mit rund 87000 Zeilen (bitte fragt nicht wo ich die her habe, brauche es für die schule).
Diese möchte ich jetzt nach Datum und Uhrzeit sortieren, weil die Werte zufällig verteilt sind.
Fängt mit 2004 an, geht dan 3 Monate 2005 und dan wider 2004 usw, alles unregelmäßig.

So sehen ein paar Beispiel Zeilen aus:
01.
 0:02:51	 1.01.2005	      0,80	    216,21	      0,08	     88,03	      4,12	     11,00	    -21,94 
02.
12:53:47	 5.01.2005	      1,29	    201,42	      0,09	     85,23	      1,57	     10,92	     12,97 
03.
22:12:48	21.12.2004	      0,23	    137,08	      0,08	     83,67	     -2,56	     11,26	    -26,11
Nach langem hin und her, habe ich es nun endlich hin bekommen, das zumindest Datum und Uhrzeit in einer einheitlichen vorm vorliegen:

01.
00:02:51	01.01.2005	      0,80	    216,21	      0,08	     88,03	      4,12	     11,00	    -21,94 
02.
12:53:47	05.01.2005	      1,29	    201,42	      0,09	     85,23	      1,57	     10,92	     12,97 
03.
22:12:48	21.12.2004	      0,23	    137,08	      0,08	     83,67	     -2,56	     11,26	    -26,11
Es handelt sich jeweils um 3 Zeilen, irgendwie wurde ein Zeilenumbruch eingefügt, der nicht da ist.
Also die erste null bei einstelligen werten wurde ergänzt.
Jetzt hänge ich daran, die werte sortiert wider in einer txt Datei abzulegen.
Das Sortieren kann gerne mehre Stunden dauern, ist mir relativ egal, muss nur einmal durchlaufen werden, sollte dan aber auch schon gleich das richtige Ergebnis liefern.
Die Zeilen werden folgendermaßen eingelesen:

01.
			BufferedReader in = new BufferedReader(new FileReader("Pfad")); 
02.
			String zeile = null; 
03.
			String str = ""; 
04.
			String str1 = ""; 
05.
			String str2 = ""; 
06.
			while ((zeile = in.readLine()) != null) { 
07.
               str = zeile.substring(0, 20); 
08.
                
09.
                
10.
                StringTokenizer s = new StringTokenizer(str, "	", false); 
11.
 
12.
                 
13.
				int i; 
14.
				 
15.
 
16.
				i = 0; 
17.
				 
18.
				while(s.hasMoreTokens()) { 
19.
	                str1 = s.nextToken(); 
20.
	                str2 = s.nextToken(); 
21.
					System.out.println(str2 + " " + str1);
unten das mit str1 und 2 war ein versuch die werte andersherum anzuordnen, also falls das lohnenswert ist, dies liegt bereits vor.
Am Ende soll aber die gesamte Zeile in einer neuen txt Datei stehen.
Hoffentlich kann mir da einer von euch helfen.
zerbrüte mir seit Stunden den Kopf über dieser Datei.

Schonmal Danke für eine Antwort
Mfg
Power-Poler
Mitglied: christianlindloff
15.04.2013 um 19:33 Uhr
Hallo Power Poler,

Ich habe leider keine Ahnung vom Programmieren. Aber eine andere Idee wäre es die Daten in eine Excel Tabelle zu kopieren und dort weiter aus zu werten.

Liebe Grüße
Christian
Bitte warten ..
Mitglied: Power-Poler
15.04.2013 um 19:47 Uhr
Das ist genau mein Problem, wenn ich Excel (ObenOffice Version) die Daten gebe, werden sie nicht richtig von einander getrennt in spalten abgelegt.
Uhrzeit und Datum Stehen in einer Spalte und der Rest immer so mit 5 Spalten Abstand zueinander dahinter.
Außerdem wüste ich nicht, wie ich dort einen Anweisung gegen kann zur Sortierung der Daten.
Achso, brächte von einer Zeile sowiso nur die Werte:
Datum
Uhrzeit
und den dritten wert von rechts, der Rest kann, wenn möglich gleich raus gefiltert werden.
Bitte warten ..
Mitglied: 76109
15.04.2013 um 20:24 Uhr
Hallo Power-Poler!

Ersetze alle Leerzeichen durch "", dann bleiben nur noch Tabs als Trennzeichen übrig

Gruß Dieter
Bitte warten ..
Mitglied: Power-Poler
15.04.2013 um 20:33 Uhr
Den zustand habe ich jetzt, aber OpenOffice kann damit nichts anfangen.
Auch sortiert bekomme ich sie in OpenOffice nicht.
Bitte warten ..
Mitglied: 64748
15.04.2013, aktualisiert um 20:38 Uhr
Guten Abend,

hast Du denn eine Vorgabe, womit Du das machen sollst?

Sinnvoll ist wie christianlindloff oben schreibt Excel wenn man es denn unter Windows macht.

Oder man hat Linux und macht es mit Perl (oder einer anderen Skriptsprache).

Das Vorgehen ist klar, zunächst sorge dafür, dass jeder Datensatz in eine Zeile kommt. Dann kannst Du das mit Excel öffnen. Du musst nur dafür sorgen, dass Excel weiß, welches Zeichen als Trenner zwischen den Spalten zu nehmen ist.

Ich hab mir das gerade mal im Editor angesehen, im Moment sind zwischen den Spalten immer genau ein Tab gefolgt von mehreren Leerzeichen. Sinnvoll wäre es, zunächst
sed -n 's/\t\ \+/;/g' < Dateinname
(geht auch im Editor (kommt auf den Editor an)) diese Zeichen durch Semikolon zu ersetzen, das wird von Excel problemlos als Spaltentrenner verarbeitet.

Sortieren in Excel kannst Du nach einer beliebigen Spalte, also hier die zweite.

Markus

PS: das geht auch mit OpenOffice
Bitte warten ..
Mitglied: Power-Poler
15.04.2013 um 20:49 Uhr
habe jetzt eine Batch erstellt mit dem Inhalt:
@echo off &setlocal

sed -n 's/\t\ \+/;/g' < G.txt
pause
bekomme jedoch jetzt eine Fehlermeldung das sed unbekannt wäre. "Der Befehl "sed" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
Drücken Sie eine beliebige Taste . . ."

Sorry falls ich dich falsch verstanden habe.

Habe jetzt Notepad++ gemacht (hat auch schon ewisch gedauert) OpenOffice öffnet es jetzt normal.
Wie kann ich jetzt in OpenOffice die Werte sortieren lassen?
Bitte warten ..
Mitglied: 64748
15.04.2013 um 20:58 Uhr
Das ist auch für Linux, sed ist der stream-Editor. Sowas gibt's in Windows nicht. Von Batch hab ich keine Ahnung.

Wenn Du einen Editor hast, der mit Regulären Ausdrücken umgehen kann, dann kannst Du mit dem Code
s/\t\ \+/;/g
diese Ersetzung in der Datei machen. Das geht aber auch in jedem anderen Editor.

Markus
Bitte warten ..
Mitglied: bastla
15.04.2013 um 21:33 Uhr
@ hmarkus
Sowas gibt's in Windows nicht.
... aber natürlich für Windows, zB http://gnuwin32.sourceforge.net/packages/sed.htm

Grüße
bastla
Bitte warten ..
Mitglied: 64748
15.04.2013 um 21:52 Uhr
Ja klar, ich entsinne mich, dass wir vor einigen Wochen einen Thread hatten, wo sed.exe nicht wie erwartet funktionierte. Ich hab vor einigen Tagen mal mobaxterm ausprobiert, das basiert auf cygwin und stellt ein Linux-Terminal in Windows zur Verfügung. Sehr empfehlenswert.

Danke @bastla für den Hinweis.

Markus
Bitte warten ..
Mitglied: 64748
15.04.2013 um 21:57 Uhr
Habe jetzt Notepad++ gemacht (hat auch schon ewisch gedauert) OpenOffice öffnet es jetzt normal.
Wie kann ich jetzt in OpenOffice die Werte sortieren lassen?
Daten -> Sortieren.... und dann den Schlüssel wählen.

Markus
Bitte warten ..
Mitglied: 64748
16.04.2013, aktualisiert um 09:58 Uhr
Hier noch ein Einzeiler in mehreren Zeilen
sed -n 's/\t\+\ \+/;/gp' < text.txt |  
sed 's/;\([0-9]\)\(.[0-9\{2\}.[0-9]\{4\}\)/\ 0\1\2/p' |  
uniq |  
sed -n 's/\([0-9]\{1,2\}\).\([0-9]\{2\}\).\([0-9]\{4\}\)/\3.\2.\1/p' |  
sort -t ';' -k 2 |  
sed -n 's/\([0-9]\{4\}\).\([0-9]\{2\}\).\([0-9]\{2\}\)/\3.\2.\1/p'

dabei ist text.txt die Datei mit den Daten. Es funktioniert nach dem Prinzip der Schwartz-Transformation. Nach dem Ersetzen von Tabs uns Leerzeichen durch Semikolon werden zunächst im Datum alle Tage zweistellig gemacht.
Danach werden tag/monat/jahr in jahr/monat/tag vertauscht.
Dann wird nach dem zweiten Feld sortiert.
Und im letzten Schritt die Vertauschung im Datum wieder Rückgängig gemacht.

Sollte auch in cygwin oder mobaxterm auf Windows laufen.

Markus

Edit: in mobaxterm muss man es anders schreiben. Z.B. im ersten Ausdruck [\t ]* für eine Folge von Tabs oder/und Leerzeichen.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Doppelte Zeilen in Text-Datei löschen
gelöst Frage von reckheimBatch & Shell15 Kommentare

Hallo ich schreibe lange Übersetzungsprogramme in FoxPro in unten folgender Text-Datei-Form. Die Datei ist allerdings durch Zusammenführung verschiedener Versionen ...

HTML
Datum und Uhrzeit als Vollbildanzeige
Frage von Fighter-01HTML7 Kommentare

Hallo an die Experten. Ich versuche eine Webseite zu erstellen, auf der das Datum und die Uhrzeit in Vollbild ...

Windows Server
Windows Updates nach Datum sortieren
Frage von RG2525Windows Server2 Kommentare

Hallo, Ich muss auf einem Windows Server 2008 R2 ca. 130 ausstehende Updates installieren. Alle Updates auf einmal zu ...

Batch & Shell
(Batch) Datum Sortier-Mechanismus
gelöst Frage von clragonBatch & Shell19 Kommentare

Hallo zusammen. Ich bin schon etwas länger am Batch schreiben, und war schon oft uneingeloggt hier, und jetzt hab ...

Neue Wissensbeiträge
Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 17 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 21 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 4 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 ...

Cloud-Dienste
PIM als SaaS Nutzungsgebühr
Frage von vanTastCloud-Dienste8 Kommentare

Moin, wir haben uns ein PIM (Product Information Management) nach unseren Ansprüchen für viel Geld als SaaS-Lösung bauen lassen. ...