我想这个问题在标题中。
我的CSV看起来像
user,path,original_path
我正在尝试在原始路径上找到重复项,然后输出user和original_path行。
这是我到目前为止所做的。
$2 = Import-Csv 'Total 20_01_16.csv' | Group-Object -Property Original_path |
Where-Object { $_.count -ge 2 } | fl Group | out-string -width 500
这给了我Original_Path中的重复项。我可以看到所有必需的信息,但如果我知道如何使用它或将其格式化为有用的东西,我将会受到威胁。
我做了一些Googleing并找到了这个脚本:
$ROWS = Import-CSV -Path 'Total 20_01_16.csv'
$NAMES = @{}
$OUTPUT = foreach ( $ROW in $ROWS ) {
IF ( $NAMES.ContainsKey( $ROW.Original_path ) -and $NAMES[$ROW.original_path] -lt 2 )
{ $ROW }
$NAMES[$ROW.original_path] += 1 }
Write-Output $OUTPUT
我不愿意使用它,因为,首先我不知道它在做什么。这对我来说没有任何意义,我不喜欢使用脚本我无法理解。 而且,这是更重要的部分,它只给我一个副本,它不给我两个集合。我在两个冒犯线之后,所以我可以找到具有相同文件的两个用户。
如果有人能伸出援助之手,我会很感激。 感谢
答案 0 :(得分:5)
这取决于您需要的输出格式,但是基于您已有的格式,我们可以使用它来显示控制台中的记录:
Import-Csv 'Total 20_01_16.csv' |
Group-Object -Property Original_path |
Where-Object { $_.count -ge 2 } |
Foreach-Object { $_.Group } |
Format-Table User, Path, Original_path -AutoSize
或者,使用它将它们保存在新的csv文件中:
Import-Csv 'Total 20_01_16.csv' |
Group-Object -Property Original_path |
Where-Object { $_.count -ge 2 } |
Foreach-Object { $_.Group } |
Select User, Path, Original_path |
Export-csv -Path output.csv -NoTypeInformation