redis-cli を用いて、今現在の redis の config 情報を yaml で出力しようと思いました。

redis-cli config get '*' | sed -e $'N;s/\\\n\\(.*\\)/: "\\1"/'

redis-cli は「設定項目」「その値」が交互に続く形で出力を行うので、それを、上記のように sed で yaml 形式に整形しようと考えました。

これは、 linux サーバーで実行すると、問題なく実行されます。一方、手元の mac で実行すると、以下のエラーを出力します。

$ redis-cli config get '*' | sed -e $'N;s/\\\n\\(.*\\)/: "\\1"/'
sed: 1: "N;s/\
\(.*\)/: "\1"/
": unterminated substitute pattern

質問

  • Mac の sed で上記の sed script がエラーになるのはなぜですか?

(追記) バージョン情報

  • linux 上: sed (GNU sed) 4.2.2
  • mac: 確認方法がわからないですが、 man sed によると以下が書いてあります。
    • The sed utility is expected to be a superset of the IEEE Std 1003.2 (``POSIX.2'') specification.
    • man ページの末尾の日付: May 10, 2005