linux - Recuperar os últimos 100 registros de linhas




logging sed (4)

Eu preciso recuperar as últimas 100 linhas de logs do arquivo de log. Eu tentei o comando sed

sed -n -e '100,$p' logfilename

Por favor, deixe-me saber como posso alterar este comando para recuperar especificamente as últimas 100 linhas.


"tail" é o comando para exibir a última parte de um arquivo, usando os controles disponíveis para nos ajudar a obter uma saída mais específica. o interruptor mais usado para mim é -n e -f

SINOPSE

cauda [-F | -f | -r] [-q] [-b number | -c numero | -n number] [arquivo ...]

Aqui

-n number: A localização é de linhas numéricas.

-f: A opção -f faz com que o final não pare quando o final do arquivo é atingido, mas sim para aguardar que dados adicionais sejam anexados à entrada. A opção -f é ignorada se a entrada padrão for um pipe, mas não se for FIFO.

Recuperar os últimos 100 registros de linhas

To get last static 100 lines  
     tail -n 100 <file path>

To get real time last 100 lines
     tail -f -n 100 <file path>

Eu sei que isso é muito antigo, mas, para quem quer que ajude.

less +F my_log_file.log

isso é apenas básico, com menos você pode fazer coisas muito mais poderosas. Uma vez que você começar a ver os registros, você pode fazer a pesquisa, ir para o número da linha, procurar por padrão, muito mais, mais é mais rápido para arquivos grandes.

é como vim para logs [totalmente minha opinião]

documentação do less original: https://linux.die.net/man/1/less

menos cheatsheet: https://gist.github.com/glnds/8862214


Você pode usar o comando tail seguinte maneira:

tail -100 <log file>   > newLogfile

Agora, as últimas 100 linhas estarão presentes no newLogfile

EDITAR:

Versões mais recentes da cauda como mencionado por twalberg use o comando:

tail -n 100 <log file>   > newLogfile

len=`cat filename | wc -l`
len=$(( $len + 1 ))
l=$(( $len - 99 ))
sed -n "${l},${len}p" filename

primeira linha leva o comprimento (linhas totais) de arquivo, em seguida, +1 no total de linhas depois que nós temos que pegar 100 registros assim, -99 do comprimento total, em seguida, basta colocar as variáveis ​​no comando sed para buscar as últimas 100 linhas de arquivo

Eu espero que isso te ajude.







sed