1

У меня есть несколько исходных файлов на Си, и у многих из них есть один однострочный комментарий вверху, который предлагает краткое описание того, что делает эта программа (я не сделал ничего достаточно сложного, чтобы гарантировать полный абзац). Мне было интересно, можно ли использовать head, чтобы видеть до первого # , так как это будет моей первой директивой препроцессора. Если бы он печатал номера строк, это также было бы бонусом.

1 ответ1

2

Grep, вероятно, является лучшим решением с использованием переключателя контекста -B:

grep -B999 -m 1 "^#" file.c

или с длинными именами опций:

grep --before-context 999 --max-count 1 "^#" file.c

Он находит шаблон "^#" (знак «#», закрепленный в начале строки), показывает до 999 строк перед ним, с максимальным количеством найденных символов «^ #», равным 1.

В общем, найдите первый «^ #», покажите до 999 строк перед ним и выйдите. Возможно, вы захотите пройти через голову, чтобы удалить найденное «^ #»:

grep -B999 -m1 "^#" file.c | head -n -1

Который будет отрезать последнюю строку.

Я согласен, что -B999 может быть немного чрезмерным, но я бы не хотел обрезать все, что ты пишешь позже в своей карьере, после того, как ты рассудил. Отрегулируйте по необходимости, конечно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .