[sed] 1行の中で2回目に一致した文字列だけ置換する

作成日: 2026年09月17日

sed の置換コマンドでは、末尾に数値を指定すると、その行で指定した回数目に一致した文字列だけを置換できます。下記では2回目の foo だけを bar に置換しています。

printf 'foo foo foo\n' | sed 's/foo/bar/2'

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

foo bar foo

s/foo/bar/2 の末尾にある 2 が、2回目に一致した foo を置換する指定です。

Bash Shell command sed