Unix Tail equivalent in Powershell

By Andrei Ungureanu - Last updated: Thursday, June 20, 2013 - Save & Share - One Comment

Tail este ceva de baza in lumea *nix. Si e acolo de cand lumea si pamantul. In Windows in schimb, in special datorita interfetei grafice nu a fost chiar atat de critic. Asta nu inseamna ca nu a fost de nevoie de asa ceva sau ca nu a existat. In Resource Kit-ul pentru Windows 2003/XP exista comanda tail.exe si bineinteles ca mai sunt si alte alternative third party gen tailforwin32.

Dar cum Powershell este pe val in clipa asta, ne intrebam cum putem sa facem asa ceva nativ din noul shell. Ei bine raspunsul este putin mai complicat. Se poate si nu. Dar hai sa vedem ce se poate cu Powershell 2.0.

image

Putem rula get-content numefisier |select –last 10 si vom putea vizualiza ultimele 10 linii ale fisierului de log. Problema apare atunci cand fisierul nostru este foarte mare, pentru ca tot continutul va trebui trimis prin pipeline catre cmdlet-ul Select-Object. In schimb pentru fisiere mici este ok .

Daca am sti exact numarul de linii din log am putea rula si ceva de genul:

(Get-Content filename)[100 .. 105]

Si vom obtine liniile de la 100 la 105. Tip: Measure-Object.

Nu sunt metode prea eficiente insa doar atat se poate cu ce e inclus by default.

Inca o optiune utila este get-content numefisier –wait ce va lista continutul fisierului si va monitoriza in continuare fisierul pentru noi modificari. Orice linie noua adaugata la sfarsitul fisierullui va fi afisata pe ecran. In felul acesta se va putea urmari live activitatea din logfile. Iar optiunea este foarte utila.

image

Vestea buna este ca in Powershell 3.0 functionalitatea tail a fost adaugata cmdlet-ului get-content. O gasim sub forma parametrului –Tail:

image

get-content C:\windows\WindowsUpdate.log -tail 10

Exemplul de mai sus o sa listeze ultimele 10 linii ale fisierului WindowsUpdate.log.

Si ca bonus va mai reamintesc inca o varianta pentru Powershell 2.0 – Powershell Community Extension unde exista Get-FileTail.

Posted in Scripting • Tags: , Top Of Page

One Response to “Unix Tail equivalent in Powershell”

Pingback from Tot despre Get-Content and tail like » RO Windows Administrators Weblog
Time June 24, 2013 at 7:01 am

[…] Unix Tail equivalent in Powershell […]

Write a comment