Analisar a saída contig.exe para * .csv usando a linha de comando ou o PowerShell

0

Estou tentando analisar o arquivo de saída contig.exe em um arquivo de valores separados por vírgula. Eu desenvolvi um método para fazer isso é o Notepad + +, mas dado o número de arquivos que eu tenho que analisar (centenas de arquivos de texto) eu gostaria de ter um método automatizado usando a linha de comando ou o PowerShell.

Por exemplo, eu gostaria de mudar isso:

Contig v1.7 - Makes files contiguous
Copyright (C) 1998-2012 Mark Russinovich
Sysinternals - www.sysinternals.com


Processing E:\$Mft...
E:\$Mft is in 80309 fragments

Processing E:\$Mft::$BITMAP...
E:\$Mft::$BITMAP is in 2202 fragments

Summary:
     Number of files processed   : 2
     Average fragmentation       : 41255.5 frags/file

... para isso:

E:\$Mft,80309 fragments
E:\$Mft::$BITMAP,2202 fragments

Alguma ideia? Obrigado!

    
por Jerry Sweeton 03.01.2013 / 18:10

1 resposta

1

No PowerShell, você aplica sua regex usando o operador -match e, em seguida, exibe cada correspondência separadamente por vírgulas:

contig.exe | foreach-object{ if($_ -match "(.*) is in (.*)") {"'"$($Matches[1])'",'"$($Matches[2])'""}} 

saída:

"E:\$Mft","80309 fragments" 
"E:\$Mft::$BITMAP","2202 fragments"

Observe que coloquei as colunas com aspas para manipular colunas com espaços

    
por 03.01.2013 / 19:40