matthes74 0 Geschrieben 10. März 2016 Melden Geschrieben 10. März 2016 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
mamamia 13 Geschrieben 10. März 2016 Melden Geschrieben 10. März 2016 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.
Cybquest 36 Geschrieben 10. März 2016 Melden Geschrieben 10. März 2016 ... und wenn's dann nur die Zahl sein soll, noch ein Split("=")[1] einbauen...
mamamia 13 Geschrieben 10. März 2016 Melden Geschrieben 10. März 2016 ... und wenn's dann nur die Zahl sein soll, noch ein Split("=")[1] einbauen... Das schaut dann so aus: ($var.Split(",") | Select-String -Pattern "iops").toString().split("=")[1] 1
matthes74 0 Geschrieben 10. März 2016 Autor Melden Geschrieben 10. März 2016 (bearbeitet) 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 10. März 2016 von matthes74
blub 115 Geschrieben 10. März 2016 Melden Geschrieben 10. März 2016 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
Cybquest 36 Geschrieben 11. März 2016 Melden Geschrieben 11. März 2016 (($var -Split "," | Select-String -Pattern "iops".toString()) -split "=")[1] ... in eine Zeile korrekt zusammengedampft :)
matthes74 0 Geschrieben 15. März 2016 Autor Melden Geschrieben 15. März 2016 vielen Dank!! hat jetzt wunderbar funktioniert.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden