`sed`正規表現エラー

`sed`正規表現エラー

DockerコンテナのIPを取得するためにエイリアスを作成しようとしています。コマンドは次のとおりです。

docker inspect redis | grep IPAddress | awk 'NR==3{ print $2 }' | sed 's/[^"]*"\([^"]*\)".*/\1/'

コマンドラインから起動すると正常に動作します。次に挿入しますbash_aliases

alias redis-ip="docker inspect redis | grep IPAddress | awk 'NR==3{ print $2 }' | sed 's/[^"]*"\([^"]*\)".*/\1/'"

ただし、起動時にredis-ip次のエラーが発生します。

sed: -e expression #1, char 19: invalid reference \1 on `s' command's RHS

誰でもエラーが何であるかを教えてもらえますか?

ベストアンサー1

これを行うには、エイリアスの代わりにシェル関数を使用してください。

function redis-ip {
  docker inspect redis |
  grep IPAddress |
  awk 'NR == 3 { print $2 }' |
  sed 's/[^"]*"\([^"]*\)".*/\1/'
}

必要に応じて動作する場合は、コマンドが何を出力するのかわからsedないので、わかりません。docker

おすすめ記事