Предполагается, что ваши CSV-файлы выглядят так:
# contents of ad.csv
user_id,field1,field2
useronlyad,value1,value2
userboth,value3,value4
и это:
# contents of oracle.csv
user_id,field1,field2
useronlyoracle,value1,value2
userboth,value3,value4
Вы можете получить пользователей рекламы, которые не являются пользователями-оракулами, как это (заимствуя New-HashSetот Джош Эйнштейн ):
# to return all ad users that are not oracle users
import-module .\Scripting.psm1
$ad_hashset = new-hashset string
$oracle_hashset = new-hashset string
import-csv .\ad.csv | ForEach-Object {$ad_hashset.add($_.user_id)}
import-csv .\oracle.csv | ForEach-Object {$oracle_hashset.add($_.user_id)}
$ad_hashset.ExceptWith($oracle_hashset)
$ad_hashset # will return useronlyad
Точно так же вы можете получить пользователей оракула, которые не являются такими пользователями рекламы, как
# to return all ad users that are not oracle users
import-module .\Scripting.psm1
$ad_hashset = new-hashset string
$oracle_hashset = new-hashset string
import-csv .\ad.csv | ForEach-Object {$ad_hashset.add($_.user_id)}
import-csv .\oracle.csv | ForEach-Object {$oracle_hashset.add($_.user_id)}
$oracle_hashset.ExceptWith($ad_hashset)
$oracle_hashset # will return useronlyoracle
Краткое объяснение того, как это работает:
- Создание двух коллекций (хэш-наборов)
- Заполнение хэш-наборов данными, найденными в соответствующих CSV
- Удаляет все элементы ввторая коллекция из первой коллекции