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

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

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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.