Chinaunix
标题:
find查找文件名的正则表达式匹配的问题
[打印本页]
作者:
junhengwoo
时间:
2016-03-15 10:02
标题:
find查找文件名的正则表达式匹配的问题
我想查找当前目录以及子目录下以“.c”、“.h”和“.cpp”结尾的文件。
如下面的目录
steven@linux:~/temp16$ tree
.
|-- a.h
|-- bh
|-- c.cpp
|-- dcpp
|-- e.c
`-- fc
复制代码
我用find ./ -name "*.[c|h|cpp]" 的方式,结果以“.cpp”为后缀的文件没找到。
steven@linux:~/temp16$ find ./ -name "*.[c|h|cpp]"
./a.h
./e.c
复制代码
请各位大神帮忙看看怎么解决这个问题
作者:
我是一隻羊
时间:
2016-03-15 10:05
这里用的是通配,不是正则.
find / -regextype "posix-egrep" -regex
复制代码
这样才是正则,前面regextype定义正则表达式的类型.
作者:
haooooaaa
时间:
2016-03-15 10:09
要不恶心点,,,
find . -name "*.h" -o -name "*.cpp" -o -name "*.h"
复制代码
作者:
junhengwoo
时间:
2016-03-15 10:12
我试着用正则表达式来实现,发现还是有问题。应该是我写的正则表达式有问题,麻烦再指导下
steven@linux:~/temp16$ find . -regextype grep -regex ".*\.[c|h|cpp]"
./a.h
./e.c
复制代码
回复
2#
我是一隻羊
作者:
junhengwoo
时间:
2016-03-15 10:15
这个可行,谢谢大神。
第一次知道了find还有个-o的参数可以用。
如果没有更好的方法,我就用这种了
回复
3#
haooooaaa
作者:
haooooaaa
时间:
2016-03-15 10:17
回复
5#
junhengwoo
find -regex '.*\.\(h\|cpp\|h\)'
复制代码
find 正则还没用过,网上看的,测试可用,
作者:
junhengwoo
时间:
2016-03-15 10:50
这个好使,谢谢哈
我就用这个了
回复
6#
haooooaaa
作者:
bikong0411
时间:
2016-03-18 10:09
回复
2#
我是一隻羊
这个不错
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2