Jump to content

Zahlen aus einem text file entnehmen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hi,

 

knobel grade an etwas und komme schnell an meine Grenzen :(

 

aus diesem text:

 

"(groupid=0, jobs=1): err= 0: pid=4768: Thu Mar 10 15:51:14 2016  read : io=3790.0KB, bw=384786B/s, iops=187, runt= 10086msec
    slat (usec): min=6, max=27, avg= 8.62, stdev= 1.42"

 

möchte ich gerne den Wert iops auslesen. in dem o.g. text wäre jetzt z.B. der Wert 187.

 

Es handelt sich um eine Performanceauswertung von Datenträgern, weshalb der Wert halt, je nach Güte der Disk, variiert. Bei Flash erhalte ich auch 6 stellige IO Werte.

 

Ich möchte als Wert die Zahl haben, hier also die 187.

 

Kann mir jemand helfen??

 

Danke und Grüße,

Matthes

Link zu diesem Kommentar

Powershell:

$var = "(groupid=0, jobs=1): err= 0: pid=4768: Thu Mar 10 15:51:14 2016  read : io=3790.0KB, bw=384786B/s, iops=187, runt= 10086msec, slat (usec): min=6, max=27, avg= 8.62, stdev= 1.42"

$var.Split(",") | Select-String -Pattern "iops"

Ausgabe: iops=187

 

Kannst du dann einfach mit Get-ChildItem und Get-Content über deine Dateien laufen lassen.

Link zu diesem Kommentar

vielen Dank,

 

ich erhalte folgende Meldung:

 

$var = get-content 2k-randrw.txt | Select-String "iops"

($var.Split(",") | Select-String -Pattern "iops").toString().split("=")[1]

Method invocation failed because [Microsoft.PowerShell.Commands.MatchInfo] does not contain a method named 'Split'.
At line:2 char:1
+ ($var.Split(",") | Select-String -Pattern "iops").toString().split("=")[1]
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: ( :) [], RuntimeException
    + FullyQualifiedErrorId : MethodNotFound

 

Warum wird die split methode nicht akzeptiert.

 

für jeden Tipp dankbar, Matthes.


Hi,

 

mit

 

 

$var -Split "," | Select-String -Pattern "iops".toString()

 

erhalte ich nun zumindest schon mal iops=187

Jetzt müsste nur noch "iops=" weg....


aha...:

 

 

$var2 = $var -Split "," | Select-String -Pattern "iops".toString()

$var2 -split "=" | Select-String -Pattern [1]

187

 

Vielen Dank!!!

PS.: wenn es eleganter geht, bitte thread updaten....

bearbeitet von matthes74
Link zu diesem Kommentar

wenn du ein wenig Lust auf reguläre Ausdrücke hast (such einfach nach "Powershell  regular expressions")

$String = "(groupid=0, jobs=1): err= 0: pid=4768: Thu Mar 10 15:51:14 2016  read : io=3790.0KB, bw=384786B/s, iops=187, runt= 10086msec, slat (usec): min=6, max=27, avg= 8.62, stdev= 1.42"

$Pattern = "iops=\d+"
$Regex = New-Object System.Text.RegularExpressions.Regex $Pattern

$($Regex.Match($String)) -match '(?''result''\d+)' | out-null
$Matches['result']

oder auch möglich

$String -match '(?''result0''iops=\d+)' | out-null
$Matches['result0'] -match '(?''result''\d+)' | out-null
$Matches['result']



blub

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...