7 ответов:
$a | sort -uniqueэто работает с регистром без учета, поэтому удаление дубликатов строк с разными случаями. Решить мою проблему.
$ServerList = @( "FS3", "HQ2", "hq2" ) | sort -Unique $ServerList FS3 HQ2
если список отсортирован, вы можете использовать Get-Unique:
$a | Get-Unique
в случае, если вы хотите быть полностью бомба доказать, это то, что я бы посоветовал:
@('Apples', 'Apples ', 'APPLES', 'Banana') | Sort-Object -Property @{Expression={$_.Trim()}} -Uniqueвыход:
Apples Bananaиспользует
независимо от того, используете ли вы "SORT-UNIQUE", "SELECT-UNIQUE" или "GET-UNIQUE" от Powershell 2.0 до 5.1, все приведенные примеры относятся к массивам с одним столбцом. Мне еще предстоит заставить это работать в массивах с несколькими столбцами, чтобы удалить повторяющиеся строки, чтобы оставить одиночные вхождения строки в указанных Столбцах или разработать альтернативное решение сценария. Вместо этого эти командлеты возвращают только строки в массиве, который произошел один раз с сингулярным вхождением и сбросил все, что имело дубликат. Обычно мне приходится вручную удалять дубликаты из окончательного вывода CSV в Excel, чтобы закончить отчет, но иногда я хотел бы продолжить работу с указанными данными в Powershell после удаления дубликатов.
С помощью моего метода вы можете полностью удалить повторяющиеся значения, оставив вам значения из массива, который имел только количество 1. Было неясно, если это то, что ОП на самом деле хотел, однако я не смог найти пример этого решения в интернете, так что вот он.
$array=@' Bananna Apple Carrot Pear Apricot Pear Bananna '@ -split '\r\n' ($array | Group-Object -NoElement | ?{$_.count -eq 1}).Name
Comments