linux – `sed` regexp错误

我正在尝试写一个别名来获取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

任何人都可以告诉我有什么错误?

最佳答案
为此使用shell函数而不是别名:

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

如果sed做你想做的或不做的事,我不知道,因为我不知道docker命令输出什么.

转载注明原文:linux – `sed` regexp错误 - 代码日志