GNU/Linux >> Znalost Linux >  >> Linux

Načíst protokoly posledních 100 řádků

Podívejte se, skript sed, který vytiskne posledních 100 řádků, můžete najít v dokumentaci k 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

Pro mě je to mnohem obtížnější než váš skript, takže

tail -n 100 logfilename

je mnohem jednodušší. A je to docela efektivní, nepřečte všechny soubory, pokud to není nutné. Viz moje odpověď se strace reportem pro tail ./huge-file :https://unix.stackexchange.com/questions/102905/does-tail-read-the-whole-file/102910#102910


Můžete jednoduše použít následující příkaz:-

ocas – NUMBER_OF_LINES FILE_NAME

např. tail -100 test.log

  • načte posledních 100 řádků z test.log

V případě, že chcete výstup výše uvedeného v samostatném souboru, můžete to provést následovně:-

konec – NUMBER_OF_LINES FILE_NAME> OUTPUT_FILE_NAME

např. tail -100 test.log > output.log

  • načte posledních 100 řádků z test.log a uloží je do nového souboru output.log)

Příkaz tail můžete použít následovně:

tail -100 <log file>   > newLogfile

Nyní bude posledních 100 řádků přítomno v newLogfile

UPRAVIT:

Novější verze ocasu, jak je zmínil twalberg, používají příkaz:

tail -n 100 <log file>   > newLogfile

"tail" je příkaz pro zobrazení poslední části souboru, použití vhodných dostupných přepínačů nám pomáhá získat konkrétnější výstup. nejpoužívanější přepínač pro mě je -n a -f

SYNOPSE

ocas [-F | -f | -r] [-q] [-b číslo | -c číslo | -n číslo] [soubor ...]

Zde

-n číslo :Umístění je číselné řady.

-f :Volba -f způsobí, že se tail nezastaví, když je dosaženo konce souboru, ale spíše počká na další data, která budou připojena ke vstupu. Volba -f je ignorována, pokud je standardním vstupem roura, ale ne, pokud se jedná o FIFO.

Načíst protokoly posledních 100 řádků

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

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

Linux
  1. Test shellu, zda řetězec více řádků obsahuje zadaný vzor na posledním řádku?

  2. Vytisknout obsah souboru bez prvního a posledního řádku?

  3. Ukončení ocasu -f po tisku N řádků?

  1. Přidání tail chování, kde enter přidá prázdné řádky na méně

  2. Jak vytisknout poslední řádek komprimovaného souboru gz na příkazovém řádku?

  3. Grep řádky začínající 1, ale ne 10, 11, 100 atd

  1. Jak používat příkaz tail k zobrazení protokolů v reálném čase

  2. Použití ocasu ke sledování souboru bez zobrazení nejnovějších řádků

  3. Průběžně sledujte kmeny s ocasem, který se občas otočí