Eu tenho alguns arquivos de origem C e muitos deles têm um comentário de uma linha na parte superior que oferece uma breve descrição do que esse programa faz (não fiz nada complexo o suficiente para justificar um parágrafo completo). me perguntando se era possível usar head para ver até o primeiro #
, já que essa seria minha primeira diretiva de pré-processador. Se imprimisse números de linha, isso também seria um bônus.
Responder1
Grep é provavelmente uma solução melhor, usando a troca de contexto -B
:
grep -B999 -m 1 "^#" file.c
ou, com nomes de opções longos:
grep --before-context 999 --max-count 1 "^#" file.c
Isto encontra o padrão "^#"
(um '#' ancorado no início da linha), mostra até 999 linhasantesele, com um número máximo de "^#" encontrados de 1.
Então, basicamente, encontre o primeiro "^#", mostre até 999 linhas antes dele e saia. Você pode querer passar pelo head para remover o "^#" encontrado:
grep -B999 -m1 "^#" file.c | head -n -1
O que cortará a última linha.
Concordo que isso -B999
pode ser um pouco excessivo, mas odiaria cortar qualquer coisa que você escrever mais tarde em sua carreira, depois de ser prolixo. Ajuste conforme apropriado, é claro.