Regular expression to extract header name from c file

后端 未结 3 1307
南笙
南笙 2021-01-28 02:29

How to extract headers from a c file that contains them like this?

#include 
#include    
#include   
         


        
3条回答
  •  爱一瞬间的悲伤
    2021-01-28 03:02

    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
    

提交回复
热议问题