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
になるようです。