Utilizzo di -replace su pipe in PowerShell


12

Voglio testare un sostituto prima di usarlo, quindi sto provando a scrivere un rapido comando online per vedere quale sia l'output. Tuttavia, non sono sicuro di quale sia la sintassi. Quello che voglio fare è qualcosa di simile

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

Qual è la sintassi PowerShell corretta per questo?

So che posso anche fare $a = cat filee poi sostituire $a, ma mi piacerebbe tenerlo su una riga

Risposte:


16

Questo dovrebbe fare il trucco, passerà attraverso tutte le righe nel file e sostituirà qualsiasi "a" con "b", ma dovrai salvarlo in un file in seguito

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

4

Per utilizzare l' operatore Powershell -replace (che funziona con le espressioni regolari), procedere come segue:

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

si noti che l'operatore -replace utilizza la corrispondenza regex, mentre l'esempio seguente utilizza un testo non regex che trova e sostituisce, poiché utilizza il metodo String.Replace di .NET Framework

cat file | % {$_.replace("abc","def")} # string.Replace uses text matching
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.