PowerShellで文字列を置換する方法!複数一括置換も!

powershell

PowerShellを使って、文字列の一部を置換したいことはありませんか?

けど、そんな中で悩むことは、

  • 文字列の一部を簡単に置換する方法がわからない
  • 複数の文字列を一括で置換したい
  • ファイル内の特定の文字列を置換したい

ですよね。

今回はそんなお悩みを解決する

  • PowerShellの基本的な置換方法
  • 複数の文字列を一括で置換する方法
  • ファイル内の文字列を置換する方法

についてまとめます!

文字列の置換 完成イメージ

PowerShellの -replace 演算子や Replace() メソッドを使うことで、文字列の部分置換が簡単にできます。

例えば、以下のようなことが可能です。

POINT
  • "Hello World""Hello PowerShell" に置換
  • 複数の単語(例: “foo” と “bar”)を一括置換
  • テキストファイル内の特定の文字を置換
それでは、具体的な方法を解説していきます。

PowerShellで文字列を置換する方法

基本的な文字列置換 (-replace 演算子)

構文:

$文字列 -replace "検索文字列", "置換後の文字列"

入力例:

$original = "Hello World"
$replaced = $original -replace "World", "PowerShell"
Write-Output $replaced  # 出力: Hello PowerShell

Replace() メソッドを使用する方法

Replace() メソッドを使うと、より直感的に文字列を置換できます。

構文:

$文字列.Replace("検索文字列", "置換後の文字列")

入力例:

$original = "PowerShell is great"
$replaced = $original.Replace("great", "awesome")
Write-Output $replaced  # 出力: PowerShell is awesome

正規表現を使った置換

-replace は正規表現が使えるため、より高度な置換が可能です。

入力例:

$original = "abc123xyz"
$replaced = $original -replace "\d+", "999"
Write-Output $replaced  # 出力: abc999xyz

\d+ は「1つ以上の数字」を意味する正規表現で、すべて 999 に置換されます。

複数の文字列を一括で置換

PowerShellで複数の文字列を一括で置換するには、ハッシュテーブルを使います。

入力例:

$original = "I love apples and oranges."
$replacements = @{ "apples" = "bananas"; "oranges" = "grapes" }

foreach ($key in $replacements.Keys) {
    $original = $original -replace $key, $replacements[$key]
}

Write-Output $original  # 出力: I love bananas and grapes.

ファイル内の文字列を置換する

PowerShellでは、テキストファイルの内容を読み取って変更し、上書き保存できます。

構文:

(Get-Content "ファイルパス") -replace "検索文字列", "置換後の文字列" | Set-Content "ファイルパス"

入力例:

(Get-Content "C:\test\sample.txt") -replace "Hello", "Hi" | Set-Content "C:\test\sample.txt"

このコマンドは C:\test\sample.txt の中の HelloHi に置換します。

複数のファイルの文字列を一括置換

フォルダ内のすべてのテキストファイルに対して文字列を置換する場合は、Get-ChildItem と組み合わせます。

入力例:

Get-ChildItem "C:\test\" -Filter "*.txt" | ForEach-Object {
    (Get-Content $_.FullName) -replace "old_text", "new_text" | Set-Content $_.FullName
}

このコマンドは C:\test\ フォルダ内のすべての .txt ファイルの old_textnew_text に置換します。

さいごに

いかがでしょうか。

今回は、

  • PowerShell の -replace 演算子を使った文字列置換
  • Replace() メソッドを使った置換
  • 複数の文字列を一括で置換する方法
  • ファイル内の特定の文字列を置換する方法

についてまとめました。

PowerShellを活用すると、手作業では大変な文字列置換も一瞬で行えます。ぜひ試してみてください!



この記事の関連キーワード

こちらの記事の関連キーワード一覧です。クリックするとキーワードに関連する記事一覧が閲覧できます。







コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA ImageChange Image