作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想使用 find 来查找以小写字母开头的目录中的每个文件。
一个简单的正则表达式结合 find 应该可以解决这个问题(我不需要处理文件名中的空格)。
所以我尝试了find . -regextype posix-egrep -regex '^.*/[a-z][^/]*$' -type f
.它返回了,在我认为不应该匹配的其他内容中,./config/Config.scala
.
所以我认为我的正则表达式是错误的,并使用 egrep 本身对其进行了测试:echo './config/Config.scala' | egrep '^.*/[a-z][^/]*$'
.没有比赛。
什么是find
这样做我失踪了吗?我已经知道 -regex
对相对文件路径而不是文件名进行操作(我不喜欢,但这是另一个问题)。查找版本为 4.4.2
最佳答案
我试图用这一系列命令重现:
mkdir testtmp
cd testtmp
mkdir config
touch config/Config.scala
find . -regextype posix-egrep -regex '^.*/[a-z][^/]*$' -type f
[a-z]
匹配超过我们都知道的 26 个小写字母。尝试这个:
LC_ALL=C find . -regextype posix-egrep -regex '^.*/[a-z][^/]*$' -type f
关于regex - 尽管使用 regextype egrep,为什么 GNU find 实用程序会在正则表达式上与 egrep 产生不同的匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11309239/
我是一名优秀的程序员,十分优秀!