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

David mówi Przywróć Monikę
źródło

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
shinjijai
źródło
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
politus
źródło