我一直无法在 Cygwin 中使用正则表达式来为我工作。
这是一些背景信息:
-find (GNU findutils) 4.5.12
我的目录中有以下文件:
-rw-rwxr--+ 1 None 0 Jun 4 19:16 eiooo.txt
-rw-rwxr--+ 1 None 0 Jun 4 19:20 g.py
-rwxrwx---+ 1 None 96 Jun 4 16:03 giibblejklxx_ekkwll.py
-rw-rwxr--+ 1 None 0 Jun 4 19:16 huuu.txt
-rw-rwxr--+ 1 None 20 Jun 4 19:17 more
-rw-rwxr--+ 1 None 0 Jun 4 19:20 v.py
我想匹配以pys结尾的字符串。
我尝试以下操作:
find -name "*py$"
我一无所获。
我也试试:
find -regex "*.py$"
一无所获。
我是否正确使用了正则表达式?据我了解,“$”的意思是“以”结尾。真的吗?我知道在这种情况下我可以不使用美元符号,但我想练习不同种类的正则表达式,而“$”(实际上是“^”)似乎永远无法与 find 命令一起使用。
有什么建议吗?感谢。
最佳答案
-name
和 -iname
使用 glob,而不是正则表达式。如果正则表达式无效,则 -regex
和 -iregex
将为 false。另请注意,-regex
和 -iregex
会尝试匹配整个路径,而不仅仅是文件名。
关于regex - 正则表达式查找命令cygwin?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30657643/