O Grep é provavelmente uma solução melhor, usando a alternância de contexto -B
:
grep -B999 -m 1 "^#" file.c
ou, com nomes longos de opções:
grep --before-context 999 --max-count 1 "^#" file.c
Isso encontra o padrão "^#"
(um '#' ancorado no início da linha), mostra até 999 linhas antes dele, com um número máximo de "^ #" 's encontrado de 1.
Então, basicamente, encontre o primeiro "^ #", mostre até 999 linhas antes dele e saia. Você pode querer passar pela cabeça para remover o "^ #" encontrado:
grep -B999 -m1 "^#" file.c | head -n -1
Qual vai cortar a última linha.
Concordo que -B999
pode ser um pouco excessivo, mas eu odeio cortar qualquer coisa que você escreva mais tarde em sua carreira depois de ter falado. Ajuste conforme apropriado, é claro.