Użycie -replace na potokach w PowerShell


12

Chcę przetestować zamiennik przed jego użyciem, więc próbuję napisać szybkie polecenie online, aby zobaczyć, co to jest. Nie jestem jednak pewien, jaka jest składnia. Chcę coś takiego

cat file | -replace "a", "b"

Jaka jest poprawna składnia PowerShell?

Wiem, że mogę to zrobić, $a = cat filea następnie wymienić $a, ale chciałbym zachować to w jednej linii

Odpowiedzi:


16

To powinno załatwić sprawę, przejdzie przez wszystkie wiersze w pliku i zamieni dowolne „a” na „b”, ale później musisz zapisać to z powrotem w pliku

cat file | % {$_.replace("a","b")} | out-file newfile

4

Aby użyć operatora Powershell -replace (który działa z wyrażeniami regularnymi):

cat file.txt | % {$_ -replace "\W", ""} # -replace operator uses regex

należy zauważyć, że operator -replace używa dopasowywania wyrażeń regularnych, podczas gdy w poniższym przykładzie użyto funkcji znajdowania i zastępowania tekstu niebędącego wyrażeniami regularnymi, ponieważ używa on metody String.Replace .NET Framework

cat file | % {$_.replace("abc","def")} # string.Replace uses text matching
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.