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