为什么grep不匹配单词边界的正斜杠(例如``/ baz`在'import baz from'./foo/bar/baz';`)?

时间:2017-12-10 20:58:48

标签: regex grep

在我的项目中,我正在尝试匹配包含“/ baz”的文件。所以,我做了以下几点:

grep -rnw . -e "\/baz"

输出正确匹配以下实例:

import { baz } from './baz';

但它似乎与这一行不匹配:

import { baz } from './foo/bar/baz';

然而,如果我在"bar\/baz"上grep,它确实匹配。发生了什么事?

2 个答案:

答案 0 :(得分:1)

从您的-w电话中删除grep参数。来自grep帮助:

  

-w, - word-regexp强制PATTERN仅匹配整个单词

因此,只有当它是一个完整的单词时才会匹配你的模式(由单词边界包围,如点,空格,行的开头/结尾......)

答案 1 :(得分:1)

你需要

grep -rn . -e "\/baz"

没有word标志。否则,表达式将查找在第二个示例中找不到的字边界。