【发布时间】:2017-12-10 20:58:47
【问题描述】:
在我的项目中,我正在尝试匹配包含“/baz”的文件。所以,我做了以下事情:
grep -rnw . -e "\/baz"
输出正确匹配以下实例:
import { baz } from './baz';
但在这一行似乎不匹配:
import { baz } from './foo/bar/baz';
但是,如果我在 "bar\/baz" 上进行 grep,它确实匹配。怎么回事?
【问题讨论】:
在我的项目中,我正在尝试匹配包含“/baz”的文件。所以,我做了以下事情:
grep -rnw . -e "\/baz"
输出正确匹配以下实例:
import { baz } from './baz';
但在这一行似乎不匹配:
import { baz } from './foo/bar/baz';
但是,如果我在 "bar\/baz" 上进行 grep,它确实匹配。怎么回事?
【问题讨论】:
从您的 grep 调用中删除 -w 参数。来自grep帮助:
-w, --word-regexp 强制 PATTERN 只匹配整个单词
因此,只有当它是一个完整的单词时,它才会匹配您的模式(被单词边界包围,例如点、空格、行首/行尾......)
【讨论】:
你需要
grep -rn . -e "\/baz"
没有word 标志。否则,表达式会查找在第二个示例中找不到的单词边界。
【讨论】: