ファイル内の文字列を置換する (正規表現含む)

ファイル内の文字列を置換するコマンドです。

c:\temp\test.txt にファイルがあり内容は以下の通りとます。
it is a big apple.
i like apple
これを置きかえます。

Powershell

置換は コマンドレット ではなく -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")


cygwin

cygwinとはWindows環境で Unix ライクなコマンドを使用するフリーソフトです。

cygwin をダウンロードする

サンプル:


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



コマンドサンプル一覧