Powershell 哈希表比较和追加



我有一个这样的csv文件:

userid;memberof
user1;groupid1
user2;groupid3
user1;groupid7
user2;groupid8

我想创建一个这样的csv文件:

user1;groupid1|groupid7
user2;groupid3|groupid8

我在这个论坛上看到这可以通过哈希表来完成,但我无法成功。

我不得不说我是Powershell的新手,所以请原谅这个问题。

不需要借口,这是一个非常棘手的问题;)

Import-CSV YourFile.txt -Delim ";" | Group-Object userid | 
   Select-Object @{ name="UserId"
                    expr={$_.Name}},
                 @{ name="MemberOf"
                    expr={($_.Group |% { $_.memberof }) -join "|" }} |
   Export-CSV YourNewFile.txt -Delim ";" -NoTypeInformation

请注意,这将包括标题行"UserId;成员"所以如果你真的不想这样,那么你应该安排把它砍掉。

而不是 Export-CSV,使用 ConvertTo-CSV,将其分配给一个变量,然后将其写出如下所示的内容:

 $output = ... | 
    ConvertTo-CSV -Delim ";" -NoTypeInformation 
 Set-Content YourNewFile.txt $output[1..($output.count)]
$original = Import-Csv .a.csv -Delimiter ';'
$expression = {[string]::Join('|', ($_.Group | Select -expand memberof))}
$original | Group-Object userid | Select-Object @{n="userid";e={$_.Name}}, @{n="memberof";e=$expression} | Export-Csv ./b.csv -NoTypeInformation -Delimiter ';'

相关内容

最新更新