2013-04-10 79 views
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」類型的唯一線路,跟着行應包含‘有’字。 預期了看跌期權:

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

我嘗試過,但根據下一行的內容不能用grep。 有什麼建議嗎?

+0

這個怎麼樣'grep的.C |的.cpp examplefilename' ..是不是它的工作..? – 2013-04-10 05:29:35

回答

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

假設GNU的grep(您標記的Linux),這將管道每一個「包括」線和其前行到過濾下來只想要什麼的grep。

+0

@picrow謝謝,工作正常 – BSalunke 2013-04-10 05:55:50

0

一種方法用awk:

awk '/include/ && x ~ /\.(C|cpp)$/{print x;}{x=$0;}' file 
相關問題