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.