ファイル内の文字列を置換するコマンドです。
c:\temp\test.txt にファイルがあり内容は以下の通りとます。
it is a big apple.
i like apple
これを置きかえます。
置換は コマンドレット ではなく -replace 演算子を使用する。
サンプル:
$(Get-Content "c:\temp\test.txt") -replace "apple","orange"
結果を置き換えたい場合は、一度変数に可能してから出力します。
サンプル:
$file_contents = $(Get-Content "c:\temp\test.txt") -replace "apple","orange"
$file_contents > "c:\temp\test.txt"
正規表現で置換
サンプル:
$file_contents = Get-Content c:\temp\test.txt
$expression = "a[a-z]{3,3}e"
$result = "orange"
[System.Text.Regularexpressions.Regex]::Replace(([string]::Join("`n", $file_contents)), $expression, $result, "Singleline")
サンプル:
c:\cygwin\bin\sed.exe 's/apple/orange/g' c:\temp\test.txt
サンプル:
c:\cygwin\bin\sed.exe -r 's/a[a-z]{3,3}e/orange/g' c:\temp\test.txt