
Estou tentando analisar o arquivo de saída de contig.exe em um arquivo de valores separados por vírgula. Desenvolvi um método para fazer isso é o Notepad ++, mas dado o número de arquivos que preciso analisar (centenas de arquivos de texto), gostaria de ter um método automatizado usando linha de comando ou PowerShell.
Por exemplo, eu gostaria de transformar 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
...nisso:
E:\$Mft,80309 fragments
E:\$Mft::$BITMAP,2202 fragments
Alguma ideia? Obrigado!
Responder1
No PowerShell, basta aplicar seu regex usando o -match
operador e gerar cada correspondência separada 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 entre aspas para lidar com colunas com espaços