2

我有大文件,需要获取所需的内容。

以下是我的文件的片段:

/home/user/balaji.C
#include<stdio.h>
/home/user/ass.cpp
/home/user/bss.cpp
#include<iostream>
#include<sys/types.h>
/home/user/ne.txt
#include<stdio.h>

我想 grep 唯一的“.C”或“.cpp”类型的行,后面的行应该包含“include”字。预期的输出是:

/home/user/balaji.C
/home/user/bss.cpp

我试过了,但无法根据下一行内容进行 grep。有什么建议吗?

4

2 回答 2

0
grep -B 1 include $FILE | grep -E '\.(C|cpp)$'

假设 GNU grep(您标记了 Linux),它将通过管道将每个“包含”行及其前一行传递给一个 grep,该 grep 只过滤到您想要的内容。

于 2013-04-10T05:27:45.693 回答
0

使用 awk 的一种方法:

awk '/include/ && x ~ /\.(C|cpp)$/{print x;}{x=$0;}' file
于 2013-04-10T05:47:04.850 回答