首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mac:打开grep在崇高中找到的文件

Mac:打开grep在崇高中找到的文件
EN

Stack Overflow用户
提问于 2013-07-30 16:19:46
回答 2查看 796关注 0票数 0

对于我来说,使用格雷格中的-l标志来获取文件列表是很常见的。我喜欢有一种方式,立即打开所有找到的文件在崇高(以某种方式使用subl命令,我想),而不是仅仅输出一个列表。

我目前的工作流程:

代码语言:javascript
复制
grep --include=*.php -R -l "tribe_events_event_classes" .

其中产出:

代码语言:javascript
复制
./plugins/events-calendar-pro/views/day/loop.php
./plugins/events-calendar-pro/views/map/loop.php
./plugins/events-calendar-pro/views/photo/loop.php
./plugins/events-calendar-pro/views/widgets/mini-calendar/list.php
./plugins/the-events-calendar/lib/tribe-template-factory.class.php
./plugins/the-events-calendar/public/template-tags/general.php
./plugins/the-events-calendar/views/list/loop.php
./plugins/the-events-calendar/views/month/single-event.php
./themes/roots/tribe-events/day/loop.php

然后,我通常一个一个地复制和粘贴这些文件:

代码语言:javascript
复制
subl ./plugins/events-calendar-pro/views/day/loop.php
subl ./plugins/events-calendar-pro/views/map/loop.php
etc...

我知道这一定是一种更有效的方法。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-30 16:36:33

最简单的方法是:

代码语言:javascript
复制
subl `grep --include=*.php -R -l "tribe_events_event_classes" .`

(注意背面)。

或者:

代码语言:javascript
复制
for file in `grep --include=*.php -R -l "tribe_events_event_classes" .`; do
    subl $file
done

编辑

由于backticks不能很好地嵌套,所以使用命令替换更好:

代码语言:javascript
复制
subl $(grep --include=*.php -R -l "tribe_events_event_classes" .)
票数 4
EN

Stack Overflow用户

发布于 2013-07-30 16:35:11

bash脚本可以很好地解决这个问题。这里有一个未经测试的概念(可能需要一些调整):

代码语言:javascript
复制
#!/bin/bash

files=()

while grep --include=*.php -R -l "tribe_events_event_classes" .; do
  files += ("$REPLY")
done

for file in "${files[@]}"; do 
  subl $file 
done
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17952310

复制
相关文章

相似问题

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