UNIX, как убрать комментарии из нескольких файлов? - PullRequest
1 голос
/ 17 ноября 2010

У меня есть несколько C программ, которые содержат строку комментария в начале каждой программы.строки начинаются с / *, за которым следует первая строка комментария, но в строке терминатора в строке only есть символы * /Подскажите, пожалуйста, способ удалить эти комментарии из всех файлов?

Ответы [ 3 ]

2 голосов
/ 17 ноября 2010
find -name '*.c'

Используйте это, чтобы убедиться, что вы работаете с правильными файлами.

find -name '*.c' | xargs sed -i '0,/^*\/$/d'

Это удалит вплоть до первой строки, содержащей только терминатор.

1 голос
/ 17 ноября 2010

Один (некрасивый) способ - использовать cpp, препроцессор Си.Например:

$ echo "AAA ; /* hahaha */ " | cpp -
# 1 "<stdin>"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "<stdin>"
AAA ;

Хотя семантически результат вывода точно совпадает с вашим вводом, cpp заменит все ваши директивы препроцессора, что, вероятно, не то, что вам нужно.С другой стороны, он очень хорош в том, что делает.

1 голос
/ 17 ноября 2010

Удаляет строки, начинающиеся с /* после первого совпадения */ (которое должно быть символом завершения комментария, независимо от того, начинается ли его строка с дополнительного пробела или нет):

sed '/^\/\*/,/\*\//d' < inputfile
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...