Usando a cabeça para ver até um personagem

1

Eu tenho alguns arquivos fonte C e muitos deles têm um único comentário de 1 linha no topo que oferece uma breve descrição do que esse programa faz (eu não fiz nada complexo o suficiente para justificar um parágrafo completo. ) Eu queria saber se era possível usar head para ver até o primeiro # , já que seria minha primeira diretiva de pré-processador. Se imprimisse números de linha, isso também seria um bônus.

    
por user341814 08.07.2014 / 23:03

1 resposta

2

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.

    
por 09.07.2014 / 00:23

Tags