Benutzer mit den meisten Antworten
String - Split und remove

Frage
-
Guten Tag,
Ich bin ein Powershell-Anfänger und stehe aktuell von einem Rätsel. Jedoch weiss ich, dass es hier jemand gibt, der mir helfen kann.
Zu meinem Problem:
Ich lese per Get-Content eine .txt-Datei ein. Diese besitzt nichts anderes als ein paar Links; z.B:
- www.wrike.com
- www.google.ch
- test.ch
- pix.Hallo.ch
Nun benötige ich für die Weiterverarbeitung jedoch nur die Domäne (wrike / google / test / Hallo)
Hat Jemand eine Idee, wie ich diese "rausfiltern" kann?
Besten Dank für eure Hilfe!
Freundliche Grüsse
- Bearbeitet Schmidi_ch Mittwoch, 5. Oktober 2016 11:20 Links editiert
Antworten
-
Moin,
so etwas?
Get-Content "FILE.TXT" | foreach { $parts = $_ -split "\." if ($parts.Count -gt 1) { $parts[($parts.Count - 2)] } }
Evgenij Smirnov
msg services ag, Berlin -> http://www.msg-services.de
my personal blog (mostly German) -> http://it-pro-berlin.de
Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.comIn theory, there is no difference between theory and practice. In practice, there is.
- Als Antwort markiert Schmidi_ch Mittwoch, 5. Oktober 2016 11:33
Alle Antworten
-
Moin,
so etwas?
Get-Content "FILE.TXT" | foreach { $parts = $_ -split "\." if ($parts.Count -gt 1) { $parts[($parts.Count - 2)] } }
Evgenij Smirnov
msg services ag, Berlin -> http://www.msg-services.de
my personal blog (mostly German) -> http://it-pro-berlin.de
Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.comIn theory, there is no difference between theory and practice. In practice, there is.
- Als Antwort markiert Schmidi_ch Mittwoch, 5. Oktober 2016 11:33
-
Hallo,
$_ ist der Platzhalter für das aktuell verwendete Objekt in der Pipeline. In einer
foreach($o in $Objects){...}
-Schleife entspricht das dem $o.
Mit -split wird ein String an dem angegebenen Zeichen zerlegt. Da hier ein Regulärer Ausdruck (schau mal danach in der Wikipedia: https://de.wikipedia.org/wiki/Regul%C3%A4rer_Ausdruck) verwendet wird, muss der Punkt (das ist dort ein Sonderzeichen) "escaped" werden. Das macht man mit einem Backslash: "\.".
Damit hast du jetzt ein Array, versuch es mal am Beispiel:
$arr = "www.wrike.com" -split "\."
Nun möchtest du immer den letzten Eintrag. Ein Array wird von 0 an gezählt. Damit ist $parts[$parts.count -1] der letzte Eintrag. Der davor ist dann -2. Alternativ könntest du in PowerShell auch direkt $parts[-2] benutzen.
- Bearbeitet hpotsirhc Mittwoch, 5. Oktober 2016 12:28