使用通配符(regex)对精确匹配字符串(路径)进行Grep



我有一个带有路径列表的文本,我只想在具有特定前缀(foo)的所有目录中选择一个特定路径到yml

所以当我运行grep -Eo "^config/foo.*/db.yml",它也选择其他db.yml文件在子目录,这不是我所期望的:(

实际输出:

config/footestto/db.yml
config/foodummy/db.yml
config/footestto/prod/db.yml

预期输出:

config/footestto/db.yml
config/foodummy/db.yml

你能帮帮我吗?我的正则表达式可能有问题。谢谢。

$ egrep -w '^config/foo[a-z]+/db.yml' test.txt

你的正则表达式不正确:

/匹配字符/

[a-z]+匹配字母1和无限次

直到找到/db.yml