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

Frage Entwicklung Batch & Shell

Mitglied: tommhii

tommhii (Level 1) - Jetzt verbinden

16.01.2012, aktualisiert 17:29 Uhr, 6255 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 ...

Linux
Shell Script, Script ausführen in einem Zeitfenster
Frage von webstorLinux2 Kommentare

Hi, ich bin wieder mal lästig. ;-) ich habe ein Script das in einem Zeitraumen von als Bsp in ...

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 ...

Neue Wissensbeiträge
Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 14 StundenBatch & Shell8 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Humor (lol)

"gimme gimme gimme": Automatischer Test stolpert über Easter Egg im man-Tool

Information von Penny.Cilin vor 16 StundenHumor (lol)6 Kommentare

Interessant, was man so alles als Easter Egg implementiert. Ist schon wieder Ostern? "gimme gimme gimme": Automatischer Test stolpert ...

MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 1 TagMikroTik RouterOS8 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Sicherheit

Sicherheitslücke in HP-Druckern - Firmware-Updates stehen bereit

Information von BassFishFox vor 1 TagSicherheit1 Kommentar

Ein weiterer Grund, dass Drucker keinerlei Verbindung nach "auswaerts" haben sollen. Unter Verwendung spezieller Malware können Angreifer aus der ...

Heiß diskutierte Inhalte
Windows Server
RDP macht Server schneller???
Frage von JaniDJWindows Server17 Kommentare

Hallo Community, wir betrieben seit geraumer Zeit diverse virtuelle Maschinen und Server mit Windows Server 2012. Leider haben wir ...

Windows 10
Windows 10 dunkler Bildschirm nach Umfallen
Frage von AkcentWindows 1015 Kommentare

Hallo, habe hier einen Windows 10 Rechner der von einem User umgefallen wurde (Beine übers Knie, an den PC ...

Windows 10
Bitlocker nach Verschlüsselung nicht mehr aufrufbar!
gelöst Frage von alexlazaWindows 1013 Kommentare

Hallo, ich besitze ein HP ZBook 17 G4 mit einem Windows 10 Pro Betriebssystem. Bei diesem Problem handelt sich, ...

Batch & Shell
Neuste Datei via PowerShell kopieren
gelöst Frage von kaiuwe28Batch & Shell11 Kommentare

Hallo zusammen, ich hatte mir mit Hilfe der Suche im Forum einen kleinen Code von colinardo rausgesucht und versucht ...