[sed] 特定の行だけ文字列を置換する
作成日: 2026年09月11日
sed では、置換コマンドの前に行番号を指定すると、特定の行だけ文字列を置換できます。下記の例では、3 行目にある foo を bar に置き換えています。
printf 'foo\nfoo\nfoo\n' | sed '3s/foo/bar/'
実行結果は下記のとおりです。
foo
foo
bar
説明
3は、3 行目だけを対象にする行番号アドレスです。s/foo/bar/は、fooをbarに置換するコマンドです。- たとえば 2 行目から 4 行目を対象にする場合は、
2,4s/foo/bar/のように範囲を指定できます。