Как извлечь заголовки из c-файла, который содержит их вот так?Регулярное выражение для извлечения имени заголовка из c-файла
#include <tema4header9.h>
#include <tema4header3.h>
#include <stdio.h>
#include <longnametest/newheader.h>
#include <net/header.h>
#include "last-test-Zhy3/DrRuheader.h"
#include <last-test-8fF7/a5xyheader.h>
Я пытался использовать:
sed -n -e 's/#include[ \t]*[<"]\([^ \/<"]*\/[^ \/]*\)\.h[">]/\1\.h/p'
, но он работает только для тех, кто в подкаталогах. Кроме того, если я типа:
sed -n -e 's/#include[ \t]*[<"]\(([^ \/<"]*\/)+[^ \/]*\)\.h[">]/\1\.h/p'
или
sed -n -e 's/#include[ \t]*[<"]\(([^ \/<"]*\/)*[^ \/]*\)\.h[">]/\1\.h/p'
команда больше не работает. Выходной файл должен выглядеть следующим образом:
tema4header9.h
tema4header3.
stdio.h
longnametest/newheader.h
net/header.h
last-test-Zhy3/DrRuheader.h
last-test-8fF7/a5xyheader.h
Что вы ожидаемый результат? 'tema4header9.h' и т. д.? – Inian