【发布时间】:2016-02-08 18:10:55
【问题描述】:
我想在满足以下条件的 Mac OS X 上运行 grep:
- 搜索所有以
*.R或*.r为扩展名的文件,忽略其他文件 - 查找字符串:
wordA和wordB考虑到字符串可能以someRubbishWordARubbish格式出现(这是有效匹配) - 只列出两个字符串出现的文件不考虑顺序
- 打印出现字符串的行
- 用颜色突出显示找到的单词
- 将文件名打印为标题和标题下的行。我受到
ack选项的启发。 - 忽略大小写
方法
我正在考虑使用 this discussion 并从以下 grep 语法开始:
grep --include=*.R -r setHeader .
然后将其与以下内容结合起来:
grep 'word1\|word2\|word3' /path
但是,我希望 cmets 确保正确评估上述所有标准。
组
^(.*)(facet|map)(.*)(map|facet)(.*)$
确认
运行ack -f 表明将搜索*.R 文件,因此将接受使用ack 的解决方案。例如,运行:
ack wordA --colour -i -H --rr
获得关于 wordA 的预期结果。我正在考虑将它与here 讨论的解决方案结合起来,但我想使用 AND 而不是 OR 并忽略字符串可能出现的顺序。我进一步尝试:
ack --match wordA --match wordB --colour -i -H --rr
但这只会产生wordB的结果。
【问题讨论】: