如何在shell脚本中使正则表达式与grep匹配?
我正在尝试创建一个shell脚本,该脚本将字符串与预定义的正则表达式相匹配。我有以下代码:如何在shell脚本中使正则表达式与grep匹配?,shell,grep,Shell,Grep,我正在尝试创建一个shell脚本,该脚本将字符串与预定义的正则表达式相匹配。我有以下代码: #!/bin/sh name="Name of string to match. #123" (echo "$name" | grep -Eq ^[#]\d+$) && echo "matched" || echo "did not match" 我总是收到一条“不匹配”的消息,尽管我认为示例中的字符串应该与正则表达式匹配。谁能意识到我做错了什么?正则表达式是错误的还是调用了gre
#!/bin/sh
name="Name of string to match. #123"
(echo "$name" | grep -Eq ^[#]\d+$) && echo "matched" || echo "did not
match"
我总是收到一条“不匹配”的消息,尽管我认为示例中的字符串应该与正则表达式匹配。谁能意识到我做错了什么?正则表达式是错误的还是调用了grep?将正则表达式用引号括起来:
(echo "$name" | grep -Eq '^[#]\d+$') && echo "matched" || echo "did not match"
如果您希望示例输入匹配,请删除输入锚点的开始部分
^
,即使用'[#]\d+$'
作为正则表达式(它将匹配任何以.
结尾的数字)。谢谢!就这样