Попытка определить самую длинную строку в CSV для каждого пользователя - PullRequest
0 голосов
/ 28 февраля 2019

У меня есть CSV, созданный по сценарию.Этот CSV имеет 3 столбца: «Имя», «Устройство» и «Программа».

Поскольку этот CSV создается с помощью сценария, который считывает ежедневные отчеты об активности пользователя, существует много дубликатов.Я хочу получить уникальные, но только те, которые имеют самую длинную строку в столбце «Программа».

Some Example

Сначала я попытался экспортировать строкис наибольшим количеством символов, но это не помогло мне, потому что я не мог найти способ сортировки для каждого пользователя.

1 Ответ

0 голосов
/ 28 февраля 2019

В соответствии с импортируемым рецептом Ансгара, возвращается группировка:

> Import-Csv .\SO_54925782.csv|Group-Object Name

Count Name                      Group
----- ----                      -----
    9 Mustermann,Max            {@{Name=Mustermann,Max; Device=ABC1234; Program={Test\Test\Application in use}}...
    5 Musterdame,Birgit         {@{Name=Musterdame,Birgit; Device=CAD1234; Program={Test\Test\Application in use}}...

Сортировка по длине программы

Import-Csv .\SO_54925782.csv|Group-Object Name|ForEach-Object{
    $_.Group|Sort-Object {$_.Program.Length};""
}

Name              Device  Program
----              ------  -------
Mustermann,Max    ABC1234 {Test\Test\Application in use}
Mustermann,Max    ABC1234 {Test\Test\Application in use}
...
Mustermann,Max    ABC1234 {Test\Test\Application in use}
Mustermann,Max    ABC1234 {Test\Test\Application in use\Addon}

Musterdame,Birgit CAD1234 {Test\Test\Application in use}
...
Musterdame,Birgit CAD1234 {Test\Test\Application in use\Addon}

и, наконец, выбор -Последний 1

Import-Csv .\SO_54925782.csv|Group-Object Name|ForEach-Object{
    $_.Group|Sort-Object {$_.Program.Length}|Select-Object -Last 1
}

Name              Device  Program
----              ------  -------
Mustermann,Max    ABC1234 {Test\Test\Application in use\Addon}
Musterdame,Birgit CAD1234 {Test\Test\Application in use\Addon}
...