Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用iregex Bash查找h文件_Bash_Find - Fatal编程技术网

使用iregex Bash查找h文件

使用iregex Bash查找h文件,bash,find,Bash,Find,我使用这一行来使用bash查找h文件,但当它这样做时,它也会查找bash文件,因为.sh结尾,我不确定如何将查找限制为只查找带有.h而不是a的文件。还有一些h作为最后一个字符 find . -iregex '.*\(h\)' 您可以将增强型正则表达式与锚点$一起使用,以仅匹配.h: find . -iregex '.*\.h$' 您可以将增强型正则表达式与锚点$一起使用,以仅匹配.h: find . -iregex '.*\.h$' 那更简单的呢 find -iname '*.h' 这更

我使用这一行来使用bash查找h文件,但当它这样做时,它也会查找bash文件,因为.sh结尾,我不确定如何将查找限制为只查找带有.h而不是a的文件。还有一些h作为最后一个字符

find . -iregex '.*\(h\)'

您可以将增强型正则表达式与锚点
$
一起使用,以仅匹配
.h

find . -iregex '.*\.h$'

您可以将增强型正则表达式与锚点
$
一起使用,以仅匹配
.h

find . -iregex '.*\.h$'

那更简单的呢

find -iname '*.h'
这更好,因为它只查找以
.h
结尾的文件,可能比使用完整的正则表达式更快

对于regex来说,正确的方法是

find -iregex '\.h$'
\.
转义“.”,使其与“.”匹配。而
$
告诉它应该是比赛的最后一部分

由于评论中的问题而添加:

通常

find \( -iname '*.h' -or -iname '*.c' \)

对我来说很好。
\(\)
是从shell中转义括号。

那么更简单的呢

find -iname '*.h'
这更好,因为它只查找以
.h
结尾的文件,可能比使用完整的正则表达式更快

对于regex来说,正确的方法是

find -iregex '\.h$'
\.
转义“.”,使其与“.”匹配。而
$
告诉它应该是比赛的最后一部分

由于评论中的问题而添加:

通常

find \( -iname '*.h' -or -iname '*.c' \)

对我来说很好。
\(\)
是从shell中转义括号。

好的,所以我实际上也在寻找java和c文件,但我不太确定如何使其工作,正如您所说的:查找-iregex“.*(\.java$\.c$\.h$)”但如果您需要在find中使用扩展正则表达式,它将不起作用。所以这在OSX中有效:
find-E-iregex.*\(h | java)$”
在Linux上可以使用:
find-regextype posix extended-iregex.*\(h | java)$”
commandOk所以我实际上也在寻找java和c文件,但我不太确定如何使其工作,正如您所说的:查找-iregex“.*(\.java$\.c$\.h$)”但如果您需要在find中使用扩展正则表达式,它将不起作用。所以这在OSX中有效:
find-E-iregex.*\(h | java)$”
在Linux上可以使用:
find-regextype posix extended-iregex.*\.(h|java)$”
command我如何使用-iname查找多个文件结尾?我尝试了-o作为或,但这是不存在的,所以我尝试搜索互联网,但我找不到太多help@CuppleKay如果我的编辑没有回答您的问题,请提出一个新问题,或者更好地搜索
查找
教程。正如我刚才告诉您的,我搜索了internet,但找不到-iname。如果你能告诉我如何搜索.h和.c,一切都会快一点。是的,当我在MINGW Shell上尝试时,它不起作用。这是一个论坛,帮助人们解决他们的问题,不要告诉他们去看其他地方,即使你应该足够聪明,知道他们确实在看其他地方already@CuppleKay你忘了在问题中提到所有这些细节。查找的版本以及它是什么“操作系统”。我的MSYS提供了
find--version
,上面写着GNU4.4.2。我刚刚测试过,它可以和那个版本一起工作。你在向人们寻求帮助。如果你的问题措辞不正确,不要嘲笑他们。我如何使用-iname找到多个文件结尾?我尝试了-o作为或,但这是不存在的,所以我尝试搜索互联网,但我找不到太多help@CuppleKay如果我的编辑没有回答您的问题,请提出一个新问题,或者更好地搜索
查找
教程。正如我刚才告诉您的,我搜索了internet,但找不到-iname。如果你能告诉我如何搜索.h和.c,一切都会快一点。是的,当我在MINGW Shell上尝试时,它不起作用。这是一个论坛,帮助人们解决他们的问题,不要告诉他们去看其他地方,即使你应该足够聪明,知道他们确实在看其他地方already@CuppleKay你忘了在问题中提到所有这些细节。查找的版本以及它是什么“操作系统”。我的MSYS提供了
find--version
,上面写着GNU4.4.2。我刚刚测试过,它可以和那个版本一起工作。你在向人们寻求帮助。如果你的问题措辞不正确,不要嘲笑他们。