当我使用 bash 脚本运行以下 sed 表达式时
t=$(sed -n "s/^([0-9]+\.){2,2}(\*|[0-9]+)(\-.*){0,1}$/p" ./apps/core-website/settings/website.config)
它给出以下错误:
sed: -e expression #1, char 41: unterminated `s' command
答案1
错误消息是正确的,您尚未终止s//
命令。该模式后面应该s/pattern/replacement/
可选地跟随限定符,例如g
、i
、p
等。您已经有了s/pattern/p
,所以没有替代品。
您还应该意识到您正在使用扩展正则表达式 (ERE) 模式,但您没有告诉sed
您正在这样做,因此它假定是普通的正则表达式。用于sed -E
此。