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 Mit einen Shell script bestimmte Werte aus einer Datei auslesen

Mitglied: tommhii

tommhii (Level 1) - Jetzt verbinden

16.01.2012, aktualisiert 17:29 Uhr, 6321 Aufrufe, 6 Kommentare

Hallo, ich möchte aus einer log Datei bestimmte Wert mit Hilfe eines Linux Scriptes auslesen, die ich dann in eine andere Datei schreibe, von wo sie weiter verarbeitet werden soll.

Hallo ich habe ein Prog. was täglich läuft und mir eine log. Datei schreibt. In dieser Log Datei stehen unter anderen einige Werte die ich weiterverarbeiten will.
Die folgenden Zeilen befinden sich in der log Datei und nur die will ich auslesen. Ich will die verbrauchte Zeit der Aufrufe auswerten.




10759' 'OTHERS '-Aufrufe benötigten '0:572.921.999' Sek.
10273' 'SELECT '-Aufrufe benötigten '8:787.561.000' Sek.
2' 'EXECUTE '-Aufrufe benötigten '3:993.116.999' Sek.
0' 'UPDATE '-Aufrufe benötigten '0:000.000.000' Sek.
0' 'DELETE '-Aufrufe benötigten '0:000.000.000' Sek.
0' 'INSERT '-Aufrufe benötigten '0:000.000.000' Sek.
153248' 'READ '-Aufrufe benötigten '7:818.841.000' Sek.
10907' 'CLOSESTMT '-Aufrufe benötigten '0:400.665.999' Sek.
233' 'TRANSACT '-Aufrufe benötigten '0:013.992.999' Sek.
Größter Zeitverbrauch bei einem DB-Aufruf war: '60:278.984.000'.
Datenbank geschlossen, Zeitverbrauch komplett: '476:498.166.000' Sekunden.

Nur diese Zeilen brauche ich nur aus der Logdatei.
Kann mir jemand vielleicht einen Lösungsansatz geben

Gruß Tommhii
Mitglied: LumenAlbum
17.01.2012 um 00:13 Uhr
Hallo Tommhii,

wie meinst du das genau?
Möchtest du aus den obigen Zeilen die Sekunden extrahieren?

Sowas ließe sich dann in batch mit "tokens" und "delims" lösen: z.B.

01.
 for /f "tokens=5 delims='" %%i in (temp.log) do @ECHO %%i 
Das würde bei deinen geposteten Zeilen dann folgende Ausgabe liefern:

0:572.921.999
8:787.561.000
3:993.116.999
0:000.000.000
0:000.000.000
0:000.000.000
7:818.841.000
0:400.665.999
0:013.992.999

Für die letzten beiden Zeilen (davon ausgehend das der Aufbau immer gleich ist) müsste man dies natürlich entsprechend anpassen.

Oder willst du was ganz anderes und möchtest innerhalb einer größeren log-Datei die Zeilen herausfiltern, die oben genannte Angaben enthalten?

Gruß
LumenAlbum
Bitte warten ..
Mitglied: tommhii
17.01.2012 um 11:28 Uhr
Danke dir für deine schnelle Antwort.


ich wollte davor noch die Begriffe stehen haben z.B.
10759 OTHERS 0:572.921.999 sek
10273 SELECT 8:787.561.000 sek
.
.
.
usw. und den Output in eine neue Datei schreiben. Wie gesagt da die log Datei auf einer Linux maschine entsteht muss dieses Script auch da laufen.




Gruß tommhii
Bitte warten ..
Mitglied: LumenAlbum
18.01.2012 um 00:14 Uhr
Sorry, hatte den Text in der blauen Überschrift (wo du erwähnst das es um Linux geht) übersehen.

Vielleicht findet sich hier noch jemand der sich mit der Linux bash auskennt - ich habe fast nur mit Windows zu tun.

Möglich wäre natürlich auch noch "Java" als Programmiersprache, die auch unter Linux benutzt werden kann, wenn dem nichts entgegensteht (kann ja sein, dass es auf jeden Fall ein Shell Skript sein soll)

Gruß
LumenAlbum
Bitte warten ..
Mitglied: tommhii
18.01.2012 um 07:55 Uhr
Kein Problem, ich danke dir trotzdem erstmal dafür das du mir einen schnellen Lösungsansatz gegeben hast .
Aber vielleicht findet sich ja hier noch jemand der eine Idee ha wie man dies umsetzen kann.


Gruß Tommhii
Bitte warten ..
Mitglied: LumenAlbum
19.01.2012 um 23:45 Uhr
Wäre Java denn eine Option? Oder soll es unbedingt die Linux Shell sein?

Mit deinem log-Posting und unter der Bedingung, dass die log-Datei immer genau nach diesem Schema aufgebaut ist und die Anzahl der Zeilen gleich ist, wäre eine Möglichkeit in Java:

01.
import java.io.BufferedReader; 
02.
import java.io.FileNotFoundException; 
03.
import java.io.FileReader; 
04.
import java.io.IOException; 
05.
 
06.
public class StringParse 
07.
08.
 
09.
	public static void main(String[] args) 
10.
11.
		 
12.
		try 
13.
14.
			String input = ""; 
15.
			String[] parts; 
16.
			BufferedReader reader = new BufferedReader(new FileReader("test.txt")); 
17.
			 
18.
			for (int i = 0; i < 9; i++) 
19.
20.
				input = reader.readLine(); 
21.
				parts = input.split("'"); 
22.
				System.out.println(parts[0] + " " + parts[2] + parts[4] + " Sek."); 
23.
24.
			 
25.
			for (int i = 0; i < 2; i++) 
26.
27.
				input = reader.readLine(); 
28.
				parts = input.split("'"); 
29.
				System.out.println(parts[0].substring(0, 21) + " " + parts[1] + " Sek."); 
30.
31.
			 
32.
		} catch (FileNotFoundException e) 
33.
34.
			e.printStackTrace(); 
35.
			 
36.
		} catch (IOException e) 
37.
38.
			e.printStackTrace(); 
39.
40.
		 
41.
42.
}
Output:

10759 OTHERS 0:572.921.999 Sek.
10273 SELECT 8:787.561.000 Sek.
2 EXECUTE 3:993.116.999 Sek.
0 UPDATE 0:000.000.000 Sek.
0 DELETE 0:000.000.000 Sek.
0 INSERT 0:000.000.000 Sek.
153248 READ 7:818.841.000 Sek.
10907 CLOSESTMT 0:400.665.999 Sek.
233 TRANSACT 0:013.992.999 Sek.
Größter Zeitverbrauch 60:278.984.000 Sek.
Datenbank geschlossen 476:498.166.000 Sek.

Allerdings weiß ich nicht ob das für dich in Frage kommt.

Liebe Grüße
LumenAlbum
Bitte warten ..
Mitglied: tommhii
20.01.2012 um 14:13 Uhr
hallo Lumen,
danke dir erstmal, die Log Datei enthält vorne weg und auch nach dem Ausschnitt, den ich hier gepostet habe noch einige Zeilen die ich nicht gebrauchen kann. Diese Zeilen sind nicht immer gleich, es können mal 20 zeilen davor kommen oder auch mehr, genauso ist es nach dem Ausschnitt den ich nur brauch. Ich will sagen die zeilen die ich auslesen will stehen zwar immer zusammen in einen Block wie ich es gepostet habe, aber nie an der selben Stelle in der Log datei.

Ich habe mir überlegt diese Log Datei auf eine Windows maschine zu transferieren und ein script als Dos Batch zu erstellen.
Java wollte ich eigentlich nicht nutzen.

Aber trotzdem erst mal vielen Dank.

Ich bin natürlich für jeden Tip Dankbar.

Grüße Tommhi
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Shell Script nach bestimmten Zeilen in einer Datei suchen

gelöst Frage von windelterroristBatch & Shell4 Kommentare

Hallo, Ich würde gerne wissen, wie ich im Shell Script nach einer Zeile in einer bestimmten Datei (z.B. test01) ...

Windows 8

JSON Datei Wert auslesen und bei bestimmten Vielfachen des Wertes ein anderes Programm öffnen

gelöst Frage von drkoaegWindows 82 Kommentare

Hallo :) Ich habe eine JSON Datei -die ich per Editor auslesen kann- mit einem Zahlenwert, der mit der ...

Entwicklung

Bestimmte zeile aus txt datei auslesen und sich aus zeile 100 einen wert anzeigen lassen ?

gelöst Frage von bob777Entwicklung12 Kommentare

Hallo Suche einen Weg sich aus einer .config (txt) datei einen Wert Spielzeit auszulesen und anzuzeigen? Kann das irgendwer ...

Batch & Shell

Mit Powershell aus .txt bestimmten Wert auslesen und herabsetzen

gelöst Frage von FISIStewBatch & Shell9 Kommentare

Hallo zusammen, ich möchte ein PS Script entwerfen mit dem ich bestimmte Dienste von verschiedenen Servern stoppe, aus einer ...

Neue Wissensbeiträge
Windows 10

Neue Sicherheitslücke in Windows 10 (Version 1709) durch Google öffentlich geworden

Information von kgborn vor 6 StundenWindows 10

Vor ein paar Tagen haben Googles Sicherheitsforscher vom Projekt Zero eine Sicherheitslücke im Edge-Browser publiziert. Jetzt wurde eine weitere ...

iOS
IOS 11.2.6 verfügbar
Information von sabines vor 12 StundeniOS

Mit dem Update soll der Bug behoben werden, bei dem eine bestimmte Zeichenkette IOS zum Absturz gebracht hat.

Sicherheit
Sicherheitsrisiko: Die Krux mit 7-Zip
Information von kgborn vor 1 TagSicherheit8 Kommentare

Bei vielen Anwendern ist das Tool 7-Zip zum Entpacken von Archivdateien im Einsatz. Die Software ist kostenlos und steht ...

Internet

Datendealing im WWW Tracking Methoden immer brutaler

Information von sabines vor 1 TagInternet

Interessanter Artikel zum Thema Tracking im WWW und die immer "besseren" Methoden des Trackings. Professor Arvind Narayanan (Princeton-Universität) betreibt ...

Heiß diskutierte Inhalte
Router & Routing
LANCOM VPN CLIENT einrichten
Frage von Finchen961988Router & Routing27 Kommentare

Hallo, ich habe ein Problem und hoffe ihr könnt mir helfen, wir haben einen Kunden der hat einen Speedport ...

Windows Server
AD DS findet Domäne nicht, behebbar?
Frage von schapitzWindows Server24 Kommentare

Guten Tag, ich habe bei einem Kunden ein Problem mit den AD DS. Umgebung ist folgende: Windows Server 2016 ...

LAN, WAN, Wireless
VPN Cisco ASA5505 PaloAlto PA-200
gelöst Frage von YannoschLAN, WAN, Wireless22 Kommentare

Hallo zusammen, ich würde gerne ein Site-to-Site VPN zwischen den beiden Standorten aufbauen. PaloAlto PA200 Internetanschluss Deutsche Telekom GK ...

Webbrowser
Welcher Browser ist der Beste?
Frage von justtinWebbrowser15 Kommentare

Hallo Leute Ich habe eine interessante Frage. Mich wurde mal interessieren welcher Browser ist eure meinung nach der beste? ...