使用命令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 实际的文件名?
答案 0 :(得分:3)
只需使用-name
:
find ... -name '[^_]*.scss'
或者,如果您坚持使用-regex
,请确保您的非下划线仅位于路径名的最后一个组件中:
find ... -regex '.*/[^/_][^/]*\.scss$'