Tips
基本的な文字列の置換 (各行の最初のマッチのみ)
`sed`は、テキストストリームエディタで、指定したファイルや標準入力の内容を、正規表現を使って置換、削除、挿入、抽出などの処理を非対話的に行うことができます。特に設定ファイルの編集やログの整形、一括置換などに威力を発揮します。
技術・言語・ツール: sed
sedは、テキストストリームエディタで、指定したファイルや標準入力の内容を、正規表現を使って置換、削除、挿入、抽出などの処理を非対話的に行うことができます。特に設定ファイルの編集やログの整形、一括置換などに威力を発揮します。
sedでファイルを簡単に一括置換する
sedコマンドは、テキストファイル内の文字列を検索し、別の文字列に置換するのに非常に便利です。特に開発中に複数の設定ファイルやソースコード内の変数名を一括で変更したい場合などに役立ちます。
# 基本的な文字列の置換 (各行の最初のマッチのみ)
sed 's/old_string/new_string/' your_file.txt
# ファイル内の全てのマッチを置換 (gフラグ: global)
sed 's/old_string/new_string/g' your_file.txt
# 大文字小文字を区別せず置換 (iフラグ: ignore case)
sed 's/old_string/new_string/gi' your_file.txt
# 複数の置換処理をまとめて実行 (-e オプションで複数指定)
sed -e 's/string1/new_string1/g' -e 's/string2/new_string2/g' your_file.txt
# ファイルに直接変更を書き込む (-i オプション、バックアップなし)
# macOSなど一部のsedでは -i "" のように空文字列を渡す必要があります
sed -i 's/old_string/new_string/g' your_file.txt
# ファイルに直接変更を書き込み、元のファイルをバックアップとして残す (-i.bak)
sed -i.bak 's/old_string/new_string/g' your_file.txt
# 特定の行範囲のみを置換 (例: 10行目から20行目まで)
sed '10,20s/old_string/new_string/g' your_file.txt
# 特定のパターンを含む行のみを置換 (アドレス指定)
sed '/pattern_in_line/s/old_string/new_string/g' your_file.txt
sedの-iオプションはファイルを直接変更するため、予期せぬ変更を防ぐためにも、先にバックアップを作成しておくか、-iなしで実行して標準出力で変更内容を確認することをお勧めします。正規表現と組み合わせることで、非常に複雑なパターンマッチングと置換が可能になり、開発の効率を大きく向上させることができます。