Skip to content

sedコマンド

基本的な置換

# 文字列置換(最初の一致のみ)
sed 's/置換前/置換後/' ファイル名

# 文字列置換(すべて)
sed 's/置換前/置換後/g' ファイル名

# ファイルを直接編集
sed -i 's/置換前/置換後/g' ファイル名

# バックアップを作成して編集
sed -i.bak 's/置換前/置換後/g' ファイル名

行の操作

# 特定行を削除
sed '3d' ファイル名              # 3行目を削除
sed '2,5d' ファイル名            # 2-5行目を削除
sed '/pattern/d' ファイル名      # パターンにマッチする行を削除

# 行を挿入
sed '3i\追加する行' ファイル名    # 3行目の前に挿入
sed '3a\追加する行' ファイル名    # 3行目の後に挿入

# 特定行のみ表示
sed -n '3p' ファイル名           # 3行目のみ表示
sed -n '2,5p' ファイル名         # 2-5行目のみ表示

よく使う実例

# IPアドレス変更
sed -i 's/192.168.1.100/192.168.1.200/g' /etc/hosts

# コメントアウト
sed -i 's/^/#/' ファイル名        # 行頭に#を追加

# コメントアウト解除
sed -i 's/^#//' ファイル名        # 行頭の#を削除

# 空行削除
sed -i '/^$/d' ファイル名

# ファイル末尾に行追加
sed -i '$a\追加する行' ファイル名

高度な使い方

# 複数の置換を同時実行
sed -e 's/old1/new1/g' -e 's/old2/new2/g' ファイル名

# 正規表現を使用
sed 's/[0-9]\+/NUMBER/g' ファイル名    # 数字をNUMBERに置換

# 大文字小文字を区別しない
sed 's/pattern/replacement/gi' ファイル名