How to extract headers from a c file that contains them like this?
#include
#include
#include
Try:
awk '{match($0,/[<"].*[>"]/);print substr($0,RSTART+1,RLENGTH-2)}' Input_file
This should work:
sed -nr 's/#include\s+[<"]([^>"]+)[>"].*/\1/p'
grep
solution: This is using perl regex and printing anything between "<"
or '"'
on the lines which start with #include
.
grep -oP '^#include.*(<|")\K.*(?=>|")' headers
tema4header9.h
tema4header3.h
stdio.h
longnametest/newheader.h
net/header.h
last-test-Zhy3/DrRuheader.h
last-test-8fF7/a5xyheader.h
If you are ok with awk
:
awk '/#include/{gsub(/<|>|"/,"",$2);print $2}' headers
tema4header9.h
tema4header3.h
stdio.h
longnametest/newheader.h
net/header.h
last-test-Zhy3/DrRuheader.h
last-test-8fF7/a5xyheader.h