您的 grep
命令中的正则表达式部分存在语法问题,主要是转义字符使用不当。以下是修正后的命令:
grep -o 'proxy_pass http://[0-9.]\+:9099;' /usr/local/AppController/conf/AppController.conf | cut -d '/' -f3 | cut -d ":" -f1 | head -1
主要修改点:
- 移除了正则表达式中多余的
\\
(只需要单个反斜杠转义) - 将最后一个
cut
的分隔符冒号用双引号包裹(避免 shell 特殊字符解析)
如果仍需要匹配 IP 地址更精确的正则表达式,可以进一步优化为:
grep -o 'proxy_pass http://[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}:9099;' /usr/local/AppController/conf/AppController.conf | cut -d '/' -f3 | cut -d ":" -f1
这个版本会严格匹配 IPv4 格式的地址。
内容由零声教学AI助手提供,问题来源于学员提问