需要一些关于PowerShell和操作csv文件的帮助,因为我是一个想要学习的新手。
我有一个包含多个列的.csv文件,现在让我们将它们称为A,B,C,D 在专栏' A'我有网址,列' B'我有群组,C和D对于这个例子非常重要。
就每列下方单元格中的值而言,显然URL的值与Group Group' B'下的值相关联。
示例csv:
URL,Groups,x,y
test1.org,TestGroup,xxx,yyy
test2.org,TestGroup,xxx,yyy
Test3.com,TestGroup,xxx,yyy
Check.com,CheckGroup,xxx,yyy
Random.1.com,RandomGroup,xxx,yyy
random.22.org,RandomGroup,xxx,yyy
所以我试图做的就是将它们组合成这样:
Groups,URL,x,y
TestGroup,"test1.org,test2.org,test3.org",xxx,yyy
CheckGroup,Check.com,xxx,yyy
RandomGroup,"Random.1.com,random.22.org",xxx,yyy
我尝试了以下内容:
$Dir = "FileLocation\Data"
$Data1 = import-csv $Dir\my.csv
$Data = $Data1 | Select Groups, URL | Group-Object Groups
$Data | export-cdv $Dir\result.csv
这导致一个对我不起作用的表,因为它将分组转换为数组。
我希望能够在原始csv上按组对其进行排序,并在由逗号分隔的同一单元格中导入Group的URL值。
感谢您的帮助。
答案 0 :(得分:0)
看起来像哈希表魔术的好例子,创建哈希表并附加到它,使用组列作为键。
$data = import-csv 'path'
$hashtable = @{}
foreach ($item in $data) { $hashtable[$($item.Groups)] += "$($item.URL), " }
唯一的缺点是每个键的末尾都有一个额外的逗号。