Linenumber de linha específica em um arquivo

0

Sou relativamente novo na programação e estou tentando descobrir uma maneira de "aplicar" uma linha com um determinado padrão a partir de um arquivo de log longo e procedente da linha que acabei de obter com grep -w "pattern" filename . Eu preciso chegar à linha imediatamente antes da minha linha grep.

Eu achei que poderia acessá-lo via linenumbers, mas eu apenas pareço encontrar soluções que leiam uma certa linha via linenumber, se eu já sei, o que é esse linenumber.

Alguma ideia?

    
por Anja Schiebeck 09.09.2013 / 18:12

1 resposta

2

Você pode dizer a grep para gerar linhas adicionais de contexto em torno de cada linha correspondente, por exemplo

grep -w "pattern" -A5 filename

para 5 linhas de contexto após a partida ou

grep -w "pattern" -B5 filename

para 5 linhas de contexto antes do jogo ou

grep -w "pattern" -C5 filename

para 5 linhas cada uma antes e depois do contexto. Então, no seu caso, você poderia fazer

grep -w "pattern" -B1 filename | head -1

para localizar "padrão" e imprimir uma única linha de contexto anterior e, em seguida, imprimir apenas a linha de contexto usando head . Outras soluções usando awk ou sed em vez de grep seriam possíveis.

    
por steeldriver 09.09.2013 / 18:27