我无法理解以下grep
操作
a=jQuery.Uno
echo $a | grep -i "jquerya*"
为什么以上查询返回jQuery.Uno
?
答案 0 :(得分:1)
*
量词匹配0(零)或更多。
在字符串中,jQuery.Uno
在a
之后有y
。因此,正则表达式jquerya*
匹配字符串。
如果你想要一个或多个a
,那么请说:
grep -i "jquerya\{1,\}"
或者,如果您的grep
版本支持扩展正则表达式:
grep -iE "jquerya+"
此外,如果你的shell支持那些,最好使用herestrings而不是echo "$var" | grep ...
:
grep -iE "jquerya+" <<< "$a"