Modyfikowanie pliku przy użyciu wyrażenia regularnego w PowerShell

Ostatnio musiałem skonwertować zawartość pliku tekstowego do innego formatu. Normalnie zrobiłbym to przy użyciu komendy sed pod linuksem. Jak na złość nie miałem dostępu do żadnej maszyny z Linuksem. Po chwili szukania okazało się, że bardzo łatwo zrobić to samo w windowsowym powershellu.

Format pliku wejściowego csv.txt to

Oczekiwany format pliku wyjściowego xml.txt to

Poniższy skrypt zamieni zawartość pliku csv.txt na plik xml.txt.

Linia 1 – wczytujemy linie z pliku csv.txt
Linie 2-6 – dla każdej linii zamieniamy wyrażenie regularne „(.*);(.*);(.*)” na ‚<person> <name>$1</name> <age>$2</age> <city>$3</city> </person>’
Linia 7 – zapisujemy linie do pliku xml.txt

$1, $2 i $3 podstawiają wartości zapisane do grupy odpowiednio 1, 2 i 3 zdefiniowanych w wyrażeniu regularnym. Grupy to części wyrażenia regularnego, definiuje się je za pomocą nawiasów okrągłych. Przechowują one to co pasowało do danej części wyrażenia regularnego.


Comments are closed.