2015-11-10 2 views
1

Я начал играть с PowerShell некоторое время назад, чтобы отфильтровать некоторые журналы, которые создает один из моих серверов.Слияние файлов CSV с фильтрацией

Индивидуальный журнал CSV в текстовом файле, где первая строка - это информация о процессе создания. Заголовки находятся на 2-й линии, и фактические вещи находятся на 3-й. Есть около 15 свойств, но мне нужно только пару из них.

Вот что у меня работает безупречно на одном файле:

Import-csv file.txt | Select-Object -Skip 1 -Property prop1, prop2, prop3, prop4, prop5 | Export-csv result.csv -NoTypeInformation 

Но, что бы я ни пытался использовать для нескольких файлов (скажем, все файлы .txt в указанной папке, поскольку журналы создаются в день и сгруппированы в папки), это не работает для меня, и я подозреваю, что это из-за другой первой строки, которую я пытаюсь пропустить таким же образом, но затем я получаю пустой объединенный CSV-файл, а только prop1 в качестве 1-го столбца

Любая помощь приветствуется, спасибо!

ответ

3

Если заголовки фактически на второй линии, а не первый, то вы, вероятно, следует сделать

Get-Content file.txt | Select-Object -Skip 1 | ConvertFrom-Csv | Export-Csv result.csv -NoTypeInformation 

Поскольку это раздевает первую строку, прежде чем она будет разобрано как CSV.

Если вы хотите объединить несколько файлов таким же образом, вы можете сделать это так же:

Get-ChildItem *.txt | ForEach-Object { 
    Get-Content $_ | Select-Object -Skip 1 | ConvertFrom-Csv 
} | Export-Csv result.csv -NoTypeInformation 
+0

Это полезно, но когда я пытаюсь применить следующее: [код] (Get-ChildItem * .txt | ForEach-Object { Get-Content $ _ | Select-Object -Skip 1 -Property prop1, prop2, prop3 | ConvertFrom-Csv } | Export-Csv result.csv -NoTypeInformation), это не дает мне то, что я хочу в принципе. Конечно, я могу взять result.csv и выполнить свойство Select-Object by в следующей строке. – Rookie

+0

Вы можете добавить свойства, необходимые для вызова 'select' в этом конвейере. Нет необходимости снова импортировать файл. – Joey

+0

Это не работает для меня, я получаю бессмысленный CSV, когда добавляю 'Select-Object -Skip 1 -Property prop1, prop2, prop3' – Rookie

Смежные вопросы