gpt4 book ai didi

regex - 尽管使用 regextype egrep,为什么 GNU find 实用程序会在正则表达式上与 egrep 产生不同的匹配?

转载 作者:行者123 更新时间:2023-12-04 18:18:08 26 4
gpt4 key购买 nike

我想使用 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

并没有输出。我也找到了 Debian 打包的 4.4.2。

更新

我敢打赌这是一个语言环境, [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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com