ashnod
Goto Top

PS: Inhalt in einer CSV oder Txt-Datei suchen und eine Information ergänzen - Zeilenweise

Hallo,

dank der Hilfe hier habe ich die Datei nun bereits halbwegs gut aufbereitet, allerdings ist nun noch mehr gewünscht.

Grundlage ist bisher dieses Script: Textdateien automatisiert bereinigen und in neue Datei überführens mittel PS-Script

Der Inhalt jeder Datei soll nun 1. Nach Bundesländern durchsucht werden und ein zweiter Suchbegriff (am Beispiel Nordbayern/Südbayern) kann ggf. vorrangig sein.

Beispielaufbau der Datei (Tabsprünge als Trenner)

Berlin .... Inof MehrInfo
Bayern .... Info MehrInfo
Bayern Südbayern Info MehrInfo
Bayern Nordbayern Info MehrInfo
Hamburg ... Info MehrInfo

Eine Kennziffer soll die Reihenfolge etwas besser bestimmen und als zusätzliche Info an jede Zeile incl. Tabsprung hinzugefügt werden.

Das Ergebnis sollte dann in etwa so aussehen:
Berlin .... Inof MehrInfo 1
Bayern .... Info MehrInfo 49
Bayern Südbayern Info MehrInfo 4 
Bayern Nordbayern Info MehrInfo 9
Hamburg ... Info MehrInfo 2

Am Beispiel Bayern ist Südbayern dann die 4 zugeordnet, Nordbayern die 9 und wenn Nord oder Süd nicht definiert ist dann halt die 49 die für 4 oder 9 stehen soll.

Erste Idee war einen Switch zu benutzen, das scheint mr aber zuviel Aufwand und ich denke für die Spezis hier wäre meine Lösung erschreckend lang face-wink

Besten Dank

Content-Key: 1059043773

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

Printed on: May 10, 2024 at 22:05 o'clock

Member: emeriks
emeriks Jul 20, 2021 at 12:55:56 (UTC)
Goto Top
Hi,
die Länge Deiner Lösung ist vollkommen irrrelevant, solange sie das gewünschte Ergebnis bringt und akzeptabel schnell läuft.

Lieber sterben als nicht "schön" sein?

E.
Mitglied: 149062
149062 Jul 21, 2021 at 20:50:52 (UTC)
Goto Top
Member: brammer
brammer Jul 22, 2021 updated at 04:38:49 (UTC)
Goto Top
Hallo,

Auf was für eine Seite "tio.run" wird hier verlinkt?

links auf irgendwelche, potentiell obskuren Seiten sind sehr unbeliebt.....

brammer
Mitglied: 149062
149062 Jul 22, 2021 updated at 05:50:14 (UTC)
Goto Top
Zitat von @brammer:

Hallo,

Auf was für eine Seite "tio.run" wird hier verlinkt?

links auf irgendwelche, potentiell obskuren Seiten sind sehr unbeliebt.....

brammer


Neee, das ist keine obskure Seite sondern unter Entwicklern allseits bekannte Seite mit der man verschiedenste Programmier- und Skriptsprachen live zur einfachen Demonstration im Browser ausprobieren kann und einem das Ergebnis der Konsole nur angezeigt wird! Also völlig harmlos.


TIO is a family of online interpreters for an evergrowing list of practical and recreational programming languages.

To use TIO, simply click the arrow below, pick a programming language, and start typing. Once you click the run button, your code is sent to a TIO arena, executed in a sandboxed environment, and the results are sent back to your browser. You can share your code by generating a client-side permalink that encodes code and input directly in the URL.
Member: ashnod
ashnod Jul 22, 2021 updated at 07:08:03 (UTC)
Goto Top
Moin, das hilft mir jetzt aber nicht wirklich weiter ...

ich lasse die Logik bisher über einen Switch inkl. if else laufen und das funktioniert soweit auch ... bisher habe ich das in zwei Scripte aufgeteilt ... ich würde das evtl natürlich gerne in einem Script haben wollen ...

um am Beispiel zu bleiben erst läuft das oben verlinkte Script und bereitet die Dateien vor ... auf die zusammengeführte Datei lasse ich dann mein Script laufen.

Was mich aber am meisten stört ist die dauer beim schreiben der datei mit Out-File -append, weil das so ewig dauert (ca. 3 Minuten)

Ausgabe am Screen ... ca. 1 Sekunde -

Iss halt so wenn man nur alle Jahre damit beschäftigt ist ... deshalb hätte mich eine alternative Lösung interessiert ...

P.S. ideal wäre es halt meine umfangreiche logik gleich im ersten script in der pipeline abzuhandel ... aber da fehlt es mir am meisten ...
Mitglied: 149062
149062 Jul 22, 2021 updated at 08:22:14 (UTC)
Goto Top
Zitat von @ashnod:

Moin, das hilft mir jetzt aber nicht wirklich weiter Echt jetzt? Da liefert man es schon frei Haus ?!
Dann beschäftige dich nochmal eingehend mit der Alternative oben die ein Switch überflüssig macht.
deshalb hätte mich eine alternative Lösung interessiert ...
Und genau die steht oben im Link.

P.S. ideal wäre es halt meine umfangreiche logik gleich im ersten script in der pipeline abzuhandel ... aber da fehlt es mir am meisten ...
Dann wäre dieser Link zu empfehlen wenn du in Zukunft nicht nur Copy n Paste Code verwenden willst
Powershell Leitfaden für Anfänger
Member: ashnod
Solution ashnod Jul 22, 2021 at 12:37:36 (UTC)
Goto Top
Na jut ... habe meinen Kladderadatsch einfach in eine function geschrieben samt if/else und switch und die function (aufbereiten) in die Pipeline geschrieben, nun klappt das auch mit der Nachbarin face-wink und geht auch erwünscht schnell

Get-Content $_.Fullname | select -Skip 12 | ?{$_ -notmatch '^\s*$'} | aufbereiten | Set-Content "$raw\$($_.Basename)raw.txt"  

Ich habe keine Ahnung warum die richtigen Daten in die Pipeline laufen ... iss mir aber wuscht --- GEHT face-smile