假设我要在整个树中搜索出现“ Foo”的所有CPP文件。我可以这样做:
find . -name "*.cpp" | xargs grep "Foo"
现在,假设我只列出那些在上一个结果的三行之内没有出现其他字符串(例如“ Bar”)的实例。
因此,给出两个文件:
cpp文件
1 Foo
2 qwerty
3 qwerty
b.cpp
1 Foo
2 Bar
3 qwerty
我想构建一个简单的搜索,在其中找到a.cpp中的“ Foo”,但找不到b.cpp中的“ Foo”。
有没有一种方法可以以相当简单的方式完成此任务?
解决方案可能在选项grep -A和/或grep -B和/或grep -C中。我想,但没有sucess ....
—
maurelio79
@ maurelio79:我目前的理论是这样。使用-A 10表示上下文的“ Foo”的Grep。用管道将其传递给grep -v Bar。用管道传输要获取文件名和行号的sed。用管道输送到(某物?)以打印该行。
—
John Dibling 2014年