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

245
user341814

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

1
звучит как работа для grep? ernie 10 лет назад 0

1 ответ на вопрос

2
lornix

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

Похожие вопросы