Reguläre Ausdrücke und Metazeichen in der PowerShell

Von Daten und Mustern

,
Es gibt kaum eine Programmier- oder Skriptsprache, die den Einsatz regulärer Ausdrücke nicht erlaubt. Doch genießt diese Technik einen schlechten Ruf. Viele Profis sind nach wie vor der Meinung, dass reguläre Ausdrücke ein Relikt aus alten Zeiten sind. Wir zeigen anhand konkreter Beispiele, wie nützlich und sinnvoll diese in der PowerShell sein können.
Flash-Speicher wird zunehmend günstiger und hält ungebremst Einzug in Clients wie Server. In der Mai-Ausgabe widmet sich IT-Administrator deshalb dem ... (mehr)

Als Administratoren ihre Arbeit noch ausschließlich an der Kommandozeile verrichteten, konnten sie die gewöhnlichen Nutzer schwer damit beeindrucken, dass sie endlos lange Reihen von kryptischen Buchstaben- und Zeichenkombinationen, etwa in der Form "(\d{1,4}\.){4}(\d{1,4})", eingaben, wodurch sich dann wie von Zauberhand Einträge in den Textdateien veränderten.

Aber auch wenn die Systembetreuer heute einen Großteil ihrer Arbeit mit grafischen Werkzeugen verrichten, die eine entsprechend komfortable Oberfläche zur Verfügung stellen, kann der Einsatz der regulären Ausdrücke (auch als "Regex" bezeichnet) die Arbeit deutlich erleichtern. Das gilt ganz besonders dann, wenn Aufgaben durch den Einsatz von PowerShell-Skripten automatisiert und vereinfacht werden sollen.

PowerShell mit Regex-Einsatz

Haben Sie schon einige PowerShell-Skripte selbst entwickelt oder auch nur eingesetzt, sind Sie in der Regel bereits mit den regulären Ausdrücken in Kontakt gekommen – auch wenn Ihnen das vielleicht gar nicht so bewusst war. Das folgende Beispiel verdeutlicht dies sehr schön:

$Ein_Array = @('etwasnr1','etwasnr2','nochwas')
$Ein_Array | Where-Object {$_ -match 'etwas'}

Hier legen wir zunächst ein Array von Strings an und starten dann eine Abfrage, die nur die zwei ersten Elemente des Arrays anzeigt, weil das dritte Element das Muster "etwas" nicht beinhaltet. Der Operator "-match" kann auch ohne das Cmdlet "Where-Object" zum Einsatz kommen. So gibt der Aufruf von:

'etwasnr1' -match 'etwas'

die Ausgabe "True" zurück, das gesuchte Muster wurde also in dem String gefunden, während der Aufruf von:

'etwasnr1' -match 'nichts'

nur folgerichtig "False" ausgibt. Ein weiterer Operator, der ebenfalls mit regulären

...

Der komplette Artikel ist nur für Abonnenten des ADMIN Archiv-Abos verfügbar.

Ähnliche Artikel

comments powered by Disqus

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023