Tail x Get-Content: Obtendo as últimas linhas de um arquivo no Windows

Olá,

Depois de 4 dias longe (estive viajando), voltei com uma solução para um problema interessante. Quem conhece bastante sobre Unix/Linux, deve conhecer também um comandinho simples, que mostra as últimas linhas de um arquivo, bem útil para verificar logs: o comando Tail.

No Windows, ele não existe nativamente. Temos o velho TYPE, do COMMAND e do CMD. No Powershell, você pode trabalhar com o comando Get-Content (que ganhou um apelido bem mais famoso: cat) e com o conceito de que, no Powershell, (quase) tudo é um objeto.

No link a seguir, Jeffery Hicks comenta sobre isso. Ele dá vários exemplos de como obter linhas de um arquivo com o get-content (o cat).

http://jdhitsolutions.blogspot.com/2007/02/powershell-get-content.html

Eu, concordo com tudo que ele disse. E tenho duas coisas a adicionar:

  • Para limitar o número de linhas, o cat tem um parâmetro que limita o número de linhas... não sendo necessário ler o arquivo inteiro. Isso melhora a performance do get-content com arquivos grandes

  • Para pegar somente as 5 últimas linhas, pode se usar outra estratégia. Ao invés de:

    $c=get-content c:\boot.ini;$l=$c.length;$c[($l-5)..$l]

    pode se usar

    (cat c:\boot.ini)[-5..-1]

    É mais simples. Se não me engano, essa notação (em negrito) vem do Ruby, Python e Perl. A primeira linguagem que implementou isso eu não sei... se você souber, me avise :)

 Até daqui a pouco... vou postar mais coisas ainda!

Categorias dessa postagem:

Comentários

Jeffery Hicks : I have a followup on this at http://jdhitsolutions.blogspot.com/2007/02/more-fun-with-get-content.html [15/2/07 13:19 - link]