Powershell – analiza pliku z regex i switch

17-Wrz-2014

Masz plik tekstowy o następującej zawartości:

server1.warsaw.pl
server2.berlin.de
server3.krakow.pl
serwer4.gdansk.pl
serwer5.tokyo.jp

Chcesz wczytać go i jeżeli linijka kończy się na PL wyświetlić napis POLSKA, a jeśli adres kończy się na DE wyświetlić napis NIEMCY. Jeśli napis nie kończy się ani na PL ani na DE, należy wyświetlić INNY.

Dobrze  nadaje się do tego switch. Switch może wczytać plik oraz dokonać analizy wyrażeniem regularnym. Zadanie jest rezliowane np. przez następujący skrypt:

switch -file .\servers.txt -Regex
{
„.+\.pl$” {Write-Host „POLSKA” -BackgroundColor Red}
„.+\.de$” {Write-Host „NIEMCY” -BackgroundColor Yellow}
default {Write-Host „INNY” -BackgroundColor Blue}
}

-file instruuje switch, że dane wejściowqe należy wczytać z pliku

-regex mówi o tym, że decyzja o wykonaniu odpowiednij instrukcji switch będzie podejmowana w oparciu o dopasowanie do wyrażenia regularnego.

„.+\.pl$” to wyrażenie regularne określające teksty składające się co najmniej z jednej litery, a za nią ciągu.pl

Efekt skryptu z naszymi danymi wejściowymi:

domeny

 

Dodaj komentarz:

Autor: Rafał Kraik