当前位置:  开发笔记 > 编程语言 > 正文

如何使用unix"find"命令查找所有cpp和h文件?

如何解决《如何使用unix"find"命令查找所有cpp和h文件?》经验,为你挑选了4个好方法。

我知道要找到我需要使用的所有h文件:find.-name"*.h"但如何查找所有h AND cpp文件?



1> Paul Tomblin..:
find . -name \*.h -print -o -name \*.cpp -print

要么

find . \( -name \*.h -o -name \*.cpp \) -print


或者,为了更好地重用代码:`find.\(-name'*.h'-o -name'*.cpp'\) - print`

2> Philluminati..:
find -name "*.h" -or -name "*.cpp"

(编辑以保护被解释为格式化的星号)


`-or`是一个GNUism.但是`-o`是标准的(POSIX).

3> Kent Fredric..:

Paul Tomblin 已经提供了一个很棒的答案,但我想我看到了你正在做的事情的模式.

有可能你会使用find来生成一个文件列表,以便有一天使用grep进行处理,并且对于这样的任务,存在一个更加用户友好的工具,Ack

适用于任何支持perl的系统,并以递归方式搜索给定字符串的所有C++相关文件,就像在

ack "int\s+foo" --cpp 

"--cpp"默认情况下匹配.cpp .cc .cxx .m .hpp .hh .h .hxx文件

(默认情况下它也会跳过存储库目录,因此不会匹配恰好看起来像文件的文件.)



4> mdup..:

一个简短明了的方法find是:

find . -regex '.*\.\(cpp\|h\)'

从手册页-regex:"这是整个路径上的匹配,而不是搜索." 因此需要前缀.*以匹配./dir1/dir2/...文件名之前的路径的开头.

推荐阅读
有风吹过best
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有