删除重复的信息

时间:2018-06-11 09:04:50

标签: powershell csv

我有以下CSV

USER/PRIMARY_GROUP/OTHER_GROUPS
X/adm/staff 
Y/staff/staff,users

我需要以下结果:

USER/PRIMARY_GROUP/OTHER_GROUPS
X/adm/staff 
Y/staff/users

因此,如果该组已存在于PRIMARY_GROUP列中,则必须将其从OTHER_GROUPS列中删除。为了做到这一点,我有:

$Match = Import-Csv $UserReport4 -Delimiter ';'
foreach ($Line in $Match) {
  if ($Line.Primary_Group -match $Line.Secondary_Group) {
    Remove-Item $Line
  } 
}

我得到的唯一输出是:

  

Remove-Item无法将参数绑定到参数' path'因为它是一个空字符串

1 个答案:

答案 0 :(得分:3)

使用计算属性分割组列表,从结果列表中删除主要组,然后将其连接回逗号分隔的字符串:

Import-Csv $UserReport4 -Delimiter ';' |
    Select-Object USER, PRIMARY_GROUP, @{n='OTHER_GROUPS';e={
        (($_.OTHER_GROUPS -split ',') -ne $_.PRIMARY_GROUP) -join ','
    }}