Вот скрипт sed, который печатает все комментарии / * * /, но он выводит «комментарии» в виде строк (как указал Томас Мэтьюз) и не будет печатать // комментарии.Не знаю, что происходит с вложенными комментариями.
/\/\*/{
bc
:a
s/\///;Tz
:c
s/^[^\/]*//;tb;Tb
:b
s/^\/\*/\/\*/;Ta
:e
s/\*\//\*\//;Td;s/\*\//\*\/\n/;x;tg
:g
s/\(.\)/\1/;Tf;p;s/^.*$//
:f
x;P;s/^.*\n//;bc
:d
H;n;be
:z
}
Чтобы распечатать все комментарии для всех файлов в каталоге, используйте его следующим образом:
for i in `find -iname "*.c" -or -iname "*.h"`; do echo ">>> $i"; sed -nf the.script.from.above < $i; done > output.txt
Это не будет обрабатывать имена файловс пробелами в нем и вывод не будет красивым!
Приветствия