1. ホーム
  2. ruby

[解決済み] ファイルのテキストをパターン検索し、指定された値で置き換える方法

2022-07-28 01:23:15

質問

ファイル(またはファイルのリスト)をパターン検索し、見つかった場合はそのパターンを与えられた値で置き換えるスクリプトを探しています。

考えていますか?

どのように解決するのですか?

免責事項です。 このアプローチは Ruby の能力を素朴に示すものであり、ファイル中の文字列を置き換えるためのプロダクショングレードのソリューションではありません。クラッシュ、割り込み、ディスクが一杯になった場合のデータ損失など、さまざまな障害シナリオが発生する可能性があります。このコードは、すべてのデータをバックアップしておくような、一回限りの簡単なスクリプト以上のものには適さない。そのため このコードをあなたのプログラムにコピーしないでください。

簡単にできる方法を紹介します。

file_names = ['foo.txt', 'bar.txt']

file_names.each do |file_name|
  text = File.read(file_name)
  new_contents = text.gsub(/search_regexp/, "replacement string")

  # To merely print the contents of the file, use:
  puts new_contents

  # To write changes to the file, use:
  File.open(file_name, "w") {|file| file.puts new_contents }
end