最近恒例の Powreshell エントリですが、今日は ファイル内の文字列を置換して上書き する方法を紹介します。
何回も同じことを言っているような気もしますが、sed や awk であれば簡単にできるのに。。。と、思いながら Powershell とたわむれます。
ファイル内の文字列を置換
タイトルの通り置換して上書きをする方法なんですが、"上書き"に関してはファイル名の指定を変えれば別のファイルを作成して保存することも可能です。
概要
処理をイメージしやすいよう、流れを説明します。
- 置換したデータを変数に格納
- 置換後のデータが格納された変数の内容を対象ファイルへ出力
(ファイル名を変えれば別ファイルとして出力することも可能)
詳細
ではやり方を。
まず、以下のテストデータを使用します。
1 2 3 4 5 6 |
PS > cat .\data.txt abc def ghi jkl mno |
置換したデータを変数に格納します。
1 2 3 4 5 6 7 |
PS > $data = Get-Content .\data.txt | ForEach-Object { $_ -replace "ghi","ZZZ" } PS > $data abc def ZZZ jkl mno |
次に、置換後のデータが格納された変数の内容を対象ファイルへ出力します。
ファイル名を変えれば別ファイルとして出力することも可能です。
1 2 3 4 5 6 7 |
PS > $data | Out-File .\data.txt PS > cat .\data.txt abc def ZZZ jkl mno |
以上です。
↓↓↓ Powershell のおすすめレシピ
posted with ヨメレバ
Lee Holmes オライリージャパン 2008-10-23