Recuperar os últimos 100 registros de linhas


Respostas:


302

Você pode usar o comando tail da seguinte maneira:

tail -100 <log file>   > newLogfile

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

EDITAR:

Versões mais recentes da cauda, ​​conforme mencionado pelo comando twalberg use:

tail -n 100 <log file>   > newLogfile

17
Note que algumas versões mais recentes do tailrequerem a sintaxe tail -n 100 <filename>...
twalberg

14

Veja, o script sed que imprime as 100 últimas linhas que você pode encontrar na documentação do sed ( https://www.gnu.org/software/sed/manual/sed.html#tail ):

$ cat sed.cmd
1! {; H; g; }
1,100 !s/[^\n]*\n//
$p

$ sed -nf sed.cmd logfilename

Para mim, é muito mais difícil que o seu script,

tail -n 100 logfilename

é muito mais simples. E é bastante eficiente, não lerá todos os arquivos se não for necessário. Veja minha resposta com o relatório strace para tail ./huge-file: /unix/102905/does-tail-read-the-whole-file/102910#102910


13

"tail" é um comando para exibir a última parte de um arquivo, usando as opções disponíveis adequadas nos ajuda a obter uma saída mais específica. a opção mais usada para mim é -n e -f

SINOPSE

cauda [-F | -f -r] [-q] [-b número | -c número | -n número] [arquivo ...]

Aqui

-n number: O local é um número de linhas.

-f: A opção -f faz com que a cauda não pare quando o final do arquivo for atingido, mas espere que dados adicionais sejam anexados à entrada. A opção -f será ignorada se a entrada padrão for um canal, mas não se for um 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>

3

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

less +F my_log_file.log

isso é apenas básico, com menos você pode fazer coisas muito mais poderosas. Depois de começar a ver os logs, você pode pesquisar, acessar o número da linha, pesquisar padrões e muito mais, além de ser mais rápido para arquivos grandes.

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

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

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


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

a primeira linha pega o comprimento (Total de linhas) do arquivo e depois +1 no total de linhas; depois disso, temos que buscar 100 registros, -99 do total, basta colocar as variáveis ​​no comando sed para buscar as últimas 100 linhas do arquivo

Eu espero que isso te ajude.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.