plastikjoe
Goto Top

Powershell select-object aus einem Block einen Teil in eine Variable schreiben

Hallo Zusammen,
ich komme einfach nicht drauf.
Ich habe eine riesige Datei > 500k Einträge die in Blöcken aufgebaut ist.
Hier muss ich nun einen Block finden und in dem Block wieder ein gewisse Zeile und dort hinter einem Zeichen die Zahl in eine Variable schreiben.
die Datei ist so aufgebaut. Hier sind 2 Blöcke Grossbritanien und Frankreich, davon habe ich noch ein paar tausend im gleichen Aufbau.

Grossbritanien:
Hauptstadt = London
Landeskürzel = GB
Währung = Pfund
Sehenswürdigkeiten = 31495
Frankreich:
Hauptstadt = Paris
Landeskürzel = F
Währung = Euro
Sehenswürdigkeiten = 22716

Nun benötige ich die Zahl hinter der Sehenswürdigkeit von Frankreich in einer Variable.
Was ich habe ist:
$OUTPUT = $test = Select-String -path .\EINGABEDATEI.TXT -pattern "Frankreich" -Context 0,5
aber hier erhalte ich nur die 5 Zeilen des Blocks Frankreichs, wie bekomme ich nun die Zahl 22716 in den $OUTPUT ?
Mit Reg Exp geht es irgendwie, ich denke da an sowas Frankreich*Sehenswürdigkeiten = .

tausend Dank

Content-Key: 394875

Url: https://administrator.de/contentid/394875

Ausgedruckt am: 28.03.2024 um 17:03 Uhr

Mitglied: 137846
137846 06.12.2018 aktualisiert um 14:38:02 Uhr
Goto Top
[regex]::match((gc .\Eingabedatei.txt -raw),'(?ism)^Frankreich:.*?^Sehenswürdigkeiten\s*=\s*(\d+)').Groups[1].Value  
Gruß A.
Mitglied: erikro
erikro 06.12.2018 um 14:36:36 Uhr
Goto Top
Moin,

$output =""  
[string]$(select-string .\laender.txt -pattern "Frankreich" -context 0,5) -match ".*Sehensw.*"  
$result = $matches
$result = $result.split(":")  
$number_raw = $result -match ".*Sehen.*"  
$number = $($number_raw.split("="))[1]  
$number = $number.trim()
$number

hth

Erik