plastikjoe

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
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 394875

Url: https://administrator.de/forum/powershell-select-object-aus-einem-block-einen-teil-in-eine-variable-schreiben-394875.html

Ausgedruckt am: 06.07.2025 um 20:07 Uhr

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