【发布时间】:2014-01-05 02:30:34
【问题描述】:
我已经完成了quite a lot of research 并尝试了列出的每一种技术(有些在 freebsd/osx 上不起作用),但是当我使用 find 命令进行最简单的搜索时,它返回为空。
我有一个目录,其中包含以下文件:
file_name_one.ext
_something.ext
some_other_file.ext
maybe_one_more.ext
我尝试了以下方法来查找所有包含下划线的文件:
find . -regex "_"
find . -regex _
find . -name "_"
find . -regex "_"
find . -regex "\_"
find . -regex "_.*"
find . -regex "\_,*"
find . -regex "\_.*"
find . -name "_" -print
find . -regex '_'
find . -regex '\(_\)'
find . -regex '$\137'
find . -regex '\137'
find . -regex '(_)'
find . -regex '\x5F'
find . -regex '.*\x5F'
find . -regex '.*/[\x5F/]
find . -regex '.*/[\x5F/]'
find . -regex '/_/'
find -E . -regex '.*/[^_/]'
find -E . -regex '\137'
find -E . -regex '\137' -print
find -E . -regex '$\137'
find -E . -regex '(_)'
find . -regextype sed -regex "_"
没有运气 ……这到底是怎么回事?为什么它不匹配任何包含下划线的文件?
【问题讨论】:
-
试试
find . -name '*_*'或find . -regex '.*_.*'手册页说正则表达式需要匹配整个路径。实际上,find . -regex '.*/.*_.*'可能更好,这样您就不会无意中匹配 ./a_b/c 之类的路径
标签: regex macos terminal find freebsd