首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用find实用程序匹配文件*.R和*Rd?

如何使用find实用程序匹配文件*.R和*Rd?
EN

Stack Overflow用户
提问于 2012-12-09 01:05:57
回答 2查看 10.9K关注 0票数 11

我想查找所有以.c.R.Rd结尾的文件。我试过了

代码语言:javascript
运行
复制
find . -iname "*.[cR]" -print

它提供了所有以.c.R结尾的文件。我如何才能另外获得.Rd文件?我知道[]只匹配一个字符,但我无法调整它以提供.Rd文件(尝试使用|或option -regex等)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-09 01:07:43

给你=)

代码语言:javascript
运行
复制
find -name "*.c" -o -name "*.R" -o -name "*.Rd"

如果它只是你正在寻找的3种扩展类型,我建议你远离正则表达式,只使用-o (如"or")操作符来组成你的搜索。

票数 18
EN

Stack Overflow用户

发布于 2012-12-09 01:18:42

-regex的合适用法是:

代码语言:javascript
运行
复制
find -regex '.*\.\(R\|Rd\|c\)'

如果要使用正则表达式,则需要记住这些正则表达式应用于整个路径,而不仅仅是文件名:

代码语言:javascript
运行
复制
   -regex pattern
          File  name  matches regular expression pattern.  This is a match
          on the whole path, not a search.  For example, to match  a  file
          named `./fubar3', you can use the regular expression `.*bar.' or
          `.*b.*3', but not `f.*r3'.  The regular  expressions  understood
          by  find  are by default Emacs Regular Expressions, but this can
          be changed with the -regextype option.

我同意sampson-chen的回答,在这里,正则表达式可能不是最佳选择。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13779709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档