Duplikaty

łatwo jest przefiltrować listę tak, aby mieć tylko unikalne elementy – jest zarówno commandlet 'get-unique’ oraz parametr ’-unique’ przy select-object, ale jak wyłuskać duplikaty?

sposobów jest oczywiście wiele a ten, który mi się podoba to:

cat "<file.name>"|group |? count -gt 1

lub w hiperpoprawnym zapisie:

get-content "<file.name>"|group-object|where-object {$_.count -gt 1}

plik:

PS C:\Temp> cat .\loremipsum.txt
Lorem ipsum dolor sit amet,
consectetur adipiscing elit.
non consectetur ex aliquam a. Vestibulum ante ipsum primis
Nulla at blandit nisi. Maecenas sodales tempor ligula.
Mauris ac pharetra eros. Nam pellentesque quam purus,
non consectetur ex aliquam a. Vestibulum ante ipsum primis
in faucibus orci luctus et ultrices
posuere cubilia Curae; Maecenas
consequat velit consequat
Mauris ac pharetra eros. Nam pellentesque quam purus,
vulputate fringilla. Donec
bibendum finibus ex vel congue.
bibendum finibus ex vel congue.

a teraz sprawdźmy duplikaty:

Count Name Group
----- ---- -----
 2 non consectetur ex ali... {non consectetur ex aliquam a. Vestibulum ante ipsum primis , non consectetur ex ali...
 2 Mauris ac pharetra ero... {Mauris ac pharetra eros. Nam pellentesque quam purus, , Mauris ac pharetra eros. Na...
 2 bibendum finibus ex ve... {bibendum finibus ex vel congue. , bibendum finibus ex vel congue. }

można jeszcze upiększyć output, pozbywając się śmieci:

cat .\sfbea.txt |group -NoElement|? count -gt 1

Unikaty

powracając jeszcze do unikatów… wydawałoby się, że skoro jest oddzielne polecenie – get-unique, to powinno mieć większe możliwości i być bardziej elastyczne niż jakiś tam parametr do innego polecenia.

o dziwo jest odwrotnie. osobiście traktuję get-unique jako ciekawostkę i nie miałem scenariusza, w którym bym go użył. a to dla tego iż [msdn]:

The Get-Unique cmdlet compares each item in a sorted list to the next item, eliminates duplicates, and returns only one instance of each item. The list must be sorted for the cmdlet to work properly.

Get-Unique is case-sensitive. As a result, strings that differ only in character casing are considered to be unique.

eN.

-o((:: sprEad the l0ve ::))o-

Zostaw komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Time limit is exhausted. Please reload CAPTCHA.