
Я пытаюсь разобрать выходной файл contig.exe в файл значений, разделенных запятыми. Я разработал метод для этого в Notepad++, но, учитывая количество файлов, которые мне нужно разобрать (сотни текстовых файлов), я хотел бы иметь автоматизированный метод с использованием командной строки или PowerShell.
Например, я хотел бы превратить это:
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
...в это:
E:\$Mft,80309 fragments
E:\$Mft::$BITMAP,2202 fragments
Есть идеи? Спасибо!
решение1
В PowerShell вы просто применяете регулярное выражение с помощью -match
оператора, а затем выводите каждое совпадение, разделяя его запятыми:
contig.exe | foreach-object{ if($_ -match "(.*) is in (.*)") {"`"$($Matches[1])`",`"$($Matches[2])`""}}
выход:
"E:\$Mft","80309 fragments"
"E:\$Mft::$BITMAP","2202 fragments"
Обратите внимание, что я заключил столбцы в кавычки, чтобы обрабатывать столбцы с пробелами.