我有大文件,需要获取所需内容。
以下是我文件的摘要:
/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。 有什么建议吗?
答案 0 :(得分:0)
grep -B 1 include $FILE | grep -E '\.(C|cpp)$'
假设GNU grep(你标记了Linux),它将把每个“include”行和它的前一行传递给grep,它只过滤到你想要的东西。
答案 1 :(得分:0)
使用awk的一种方式:
awk '/include/ && x ~ /\.(C|cpp)$/{print x;}{x=$0;}' file