
Estoy intentando analizar el archivo de salida de contig.exe en un archivo de valores separados por comas. He desarrollado un método para hacer esto: Notepad++, pero dada la cantidad de archivos que tengo que analizar (cientos de archivos de texto), me gustaría tener un método automatizado usando la línea de comandos o PowerShell.
Por ejemplo, me gustaría convertir esto:
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
...dentro de esto:
E:\$Mft,80309 fragments
E:\$Mft::$BITMAP,2202 fragments
¿Algunas ideas? ¡Gracias!
Respuesta1
En PowerShell, simplemente aplica su expresión regular usando el -match
operador y luego genera cada coincidencia separada por comas:
contig.exe | foreach-object{ if($_ -match "(.*) is in (.*)") {"`"$($Matches[1])`",`"$($Matches[2])`""}}
producción:
"E:\$Mft","80309 fragments"
"E:\$Mft::$BITMAP","2202 fragments"
Tenga en cuenta que he incluido las columnas entre comillas para manejar las columnas con espacios.