在终端中找到使用正则表达式

时间:2014-05-25 00:01:46

标签: regex find

使用命令bellow:

find ./stylesheets/sass/ -maxdepth 1 -type f -regextype posix-egrep -regex '[^_].+\.scss'

我明白了:

./stylesheets/sass/_hero.scss
./stylesheets/sass/_article-type.scss
./stylesheets/sass/app.scss
./stylesheets/sass/_footer.scss
./stylesheets/sass/_grid-items.scss

我只想:

./stylesheets/sass/app.scss

所以我对下划线的否定[^_]不起作用,因为它试图匹配 我认为,路径的最开始,而不是文件名本身。

如何解决这个问题,保持足够的灵活性,以便任何深度的dirs 实际的文件名?

1 个答案:

答案 0 :(得分:3)

只需使用-name

find ... -name '[^_]*.scss'

或者,如果您坚持使用-regex,请确保您的非下划线仅位于路径名的最后一个组件中:

find ... -regex '.*/[^/_][^/]*\.scss$'