[sed] 特定の行だけ文字列を置換する

作成日: 2026年09月11日

sed では、置換コマンドの前に行番号を指定すると、特定の行だけ文字列を置換できます。下記の例では、3 行目にある foobar に置き換えています。

printf 'foo\nfoo\nfoo\n' | sed '3s/foo/bar/'

実行結果は下記のとおりです。

foo
foo
bar

説明

  • 3 は、3 行目だけを対象にする行番号アドレスです。
  • s/foo/bar/ は、foobar に置換するコマンドです。
  • たとえば 2 行目から 4 行目を対象にする場合は、2,4s/foo/bar/ のように範囲を指定できます。
Bash Shell command sed