Используя голову, чтобы увидеть до персонажа

1

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

user341814
источник
звучит как работа для grep?
Эрни

Ответы:

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может быть немного чрезмерно, но я бы не хотел обрезать все, что ты пишешь позже в своей карьере, после того, как ты многословен. Отрегулируйте по необходимости, конечно.

lornix
источник