Devo recuperare le ultime 100 righe di log dal file di log. Ho provato il comando sed
sed -n -e '100,$p' logfilename
Per favore fatemi sapere come posso cambiare questo comando per recuperare in modo specifico le ultime 100 righe.
Devo recuperare le ultime 100 righe di log dal file di log. Ho provato il comando sed
sed -n -e '100,$p' logfilename
Per favore fatemi sapere come posso cambiare questo comando per recuperare in modo specifico le ultime 100 righe.
Risposte:
Puoi usare il comando tail come segue:
tail -100 <log file> > newLogfile
Ora saranno presenti le ultime 100 righe newLogfile
MODIFICARE:
Le versioni più recenti di tail menzionate da twalberg usano il comando:
tail -n 100 <log file> > newLogfile
tail
richiedono la sintassi tail -n 100 <filename>
...
Guarda, lo script sed che stampa le ultime 100 righe che puoi trovare nella documentazione per 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
Per me è molto più difficile della tua sceneggiatura
tail -n 100 logfilename
è molto più semplice. Ed è abbastanza efficiente, non leggerà tutti i file se non è necessario. Vedi la mia risposta con il rapporto strace per tail ./huge-file
: /unix/102905/does-tail-read-the-whole-file/102910#102910
"tail" è il comando per visualizzare l'ultima parte di un file, usando gli opportuni switch disponibili ci aiuta ad ottenere output più specifici. lo switch più usato per me è -n e -f
SINOSSI
coda [-F | -f | -r] [-q] [-b numero | -c numero | -n numero] [file ...]
Qui
-n numero: la posizione è costituita da linee numeriche.
-f: l'opzione -f fa sì che tail non si fermi quando viene raggiunta la fine del file, ma piuttosto attende che vengano aggiunti dati aggiuntivi all'input. L'opzione -f viene ignorata se l'input standard è una pipe, ma non se è un FIFO.
Recupera i registri delle ultime 100 righe
To get last static 100 lines
tail -n 100 <file path>
To get real time last 100 lines
tail -f -n 100 <file path>
So che questo è molto vecchio, ma, per chiunque possa aiutare.
less +F my_log_file.log
questo è solo di base, con meno puoi fare cose molto più potenti. una volta che inizi a vedere i registri puoi fare una ricerca, andare al numero di riga, cercare un modello, molto di più e inoltre è più veloce per file di grandi dimensioni.
è come vim per i log [totalmente la mia opinione]
documentazione originale di less: https://linux.die.net/man/1/less
meno cheatsheet: https://gist.github.com/glnds/8862214
len=`cat filename | wc -l`
len=$(( $len + 1 ))
l=$(( $len - 99 ))
sed -n "${l},${len}p" filename
la prima riga prende la lunghezza (linee totali) del file, quindi +1 nelle righe totali, dopodiché dobbiamo recuperare 100 record, quindi -99 dalla lunghezza totale quindi inserire le variabili nel comando sed per recuperare le ultime 100 righe dal file
Spero che questo ti possa aiutare.