Utilisation de -replace sur les tuyaux dans PowerShell

12

Je veux tester un remplacement avant de l'utiliser, j'essaie donc d'écrire une commande en ligne rapide pour voir quelle est la sortie. Cependant, je ne suis pas sûr de la syntaxe. Ce que je veux faire, c'est quelque chose comme

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

Quelle est la syntaxe PowerShell correcte pour cela?

Je sais que je peux aussi faire $a = cat file, puis faire un remplacement $a, mais je voudrais garder cela sur une seule ligne

David dit de réintégrer Monica
la source

Réponses:

16

Cela devrait faire l'affaire, il passera par toutes les lignes du fichier et remplacera tout "a" par "b", mais vous devrez le réenregistrer dans un fichier par la suite

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

Pour utiliser l' opérateur Powershell -replace (qui fonctionne avec les expressions régulières), procédez comme suit :

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

notez que l'opérateur -replace utilise la correspondance regex, tandis que l'exemple suivant utilise une recherche et un remplacement de texte non regex, car il utilise la méthode String.Replace du .NET Framework

cat file | % {$_.replace("abc","def")} # string.Replace uses text matching
politus
la source