2016-05-02 39 views
44

Devo recuperare le ultime 100 righe di registri dal file di registro. Ho provato il comando sedRecupera le ultime 100 righe di registri

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

Si prega di farmi sapere come posso cambiare questo comando per recuperare specificamente gli ultimi 100 linee.

+0

Questo è menzionato nel manuale: https://www.gnu.org/software/sed/manual/html_node/tail.html#tail, come sed può emulare coda. –

risposta

80

È possibile utilizzare tail comando come segue:

tail -100 <log file> > newLogfile 

Ora ultime 100 linee saranno presenti in newLogfile

+8

Si noti che alcune versioni più recenti di 'tail' richiedono la sintassi' tail -n 100 '... – twalberg

4

sguardo, lo script sed che stampa le ultime 100 righe si possono trovare nella documentazione 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 di quanto lo script in modo

tail -n 100 logfilename 

è molto più semplice. Ed è abbastanza efficiente, non leggerà tutti i file se non è necessario. Vedere la mia risposta con strace report per tail ./huge-file: https://unix.stackexchange.com/questions/102905/does-tail-read-the-whole-file/102910#102910