I have a simple textfile and I need a powershell script to replace some parts of the file content.
My current script is the following:
$content = Get-Con
Is it possible to write it in one line without the content variable, like this?
Yes: use ForEach-Object
(or its alias %
) and then $_
to reference the object on the pipeline:
Get-Content -path "Input.json" | % { $_ -Replace '"(\d+),(\d{1,})"', '$1.$2' } | Out-File "output.json"
Is it possible to do more replacements than one in a pipeline.
Yes.
Foreach-Object
segments.As -replace
returns the result, they can be chained in a single expression:
($_ -replace $a,$b) -replace $c,$d
I suspect the parentheses are not needed, but I think they make it easier to read: clearly more than a few chained operators (especially if the match/replacements are non-trivial) will not be clear.