Bash の sed みたいなことが Windows で簡単にできないか調べてみました。
ファイルの内容を読み込む
ファイルの内容を読み込むには Get-Content コマンドレットを使うようです。
PS C:\> Get-Content -Path "C:\Chapters\Chapter1.txt"
-Path オプションに指定したファイルの内容を読み込みます。
ファイルに内容を出力する
ファイルに内容を出力するには Set-Content コマンドレットを使うようです。
PS C:\> Set-Content -Path "C:\Test1\test*.txt" -Value "Hello, World"
-Value オプションに指定した内容を -Path オプションに指定したファイルに出力します。
1 行ずつ処理する
1 行ずつ処理するには ForEach-Object コマンドレットにパイプで渡してあげればいいようです。
PS C:\> (Get-Content -Path "Notice.txt") | ForEach-Object {$_ -replace "Warning", "Caution"} | Set-Content -Path "Notice.txt"
文字列の置換は -replace オペレーターで、文字列の結合は + オペレーターでできるようです。
終わり
PowerShell の標準の文字コードが Unicode になるようです。
-Encoding のオプションを指定することができます。
UTF8 にすることができますが、 UTF-8 with BOM になるようです。