正则表达式 - 验证IPv6地址
问题描述:
正则表达式正在与shell脚本罚款,在不同的thread问的我,但是当我使用echo命令作为正则表达式 - 验证IPv6地址
echo "2001:0Db8:85a3:0000:8a2e:0370:7334" | grep "^([0-9a-fA-F]{0,4}:){1,7}([0-9a-fA-F]){0,4}$"
没有输出和echo $?
回报
Do正则表达式不适用于echo/grep?
答
您在此处使用ERE POSIX语法。使用-E
选项可使grep
使用POSIX ERE。
或者逃避(
和)
和{
和}
,使图案与POSIX BRE兼容:
echo "2001:0Db8:85a3:0000:8a2e:0370:7334" | grep "^\([0-9a-fA-F]\{0,4\}:\)\{1,7\}[0-9a-fA-F]\{0,4\}$"
用途:'回声“2001:将0db8:85±3:0000:8a2e :0370:7334“| grep -E“^([0-9a-fA-F] {0,4}:){1,7}([0-9a-fA-F]){0,4} $”'用于扩展正则表达式支持'grep'中的'grep' – anubhava