Usando a cabeça para ver um personagem

Usando a cabeça para ver um personagem

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 -B999pode 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.

informação relacionada