Análise a ficheiros de texto

Hoje o tema é sobre os cmdlet’s Group-Object e Measure-Object e sobre a sua capacidade de analisar ficheiros baseados em texto.

O exemplo abaixo analisa o ficheiro windowsupdate.log e devolve o número de registos que o ficheiro contém agrupados por dia.

Get-Content $env:windir\windowsupdate.log | 
  Group-Object { $_.SubString(0,10) } -NoElement |
  Sort-Object Count -Descending |
  Select-Object Count, Name

 

image

Neste exemplo vamos contar o número de linhas e palavras existentes no mesmo ficheiro:

# Devolve o número de linhas
Get-Content C:\windows\WindowsUpdate.log | Measure-Object -Line
# Devolve o número de palavras
Get-Content C:\windows\WindowsUpdate.log | Measure-Object -Word
# Devolve o número de caracteres
Get-Content C:\windows\WindowsUpdate.log | Measure-Object -Character
# Analisando as propriedades comprimento podemos ainda saber o comprimento máximo, mínimo, médio e a soma
Get-Content C:\windows\WindowsUpdate.log | Measure-Object -Property length -Maximum -Minimum -Average -Sum

image