2016-06-23 18 views
0

Ich versuche, Powershell zu verwenden, um eine CSV-Datei zu suchen und eine Liste doppelter Zeilen in einer CSV-Datei auszugeben. Ich kann mit dem im Anschluss an diese ziemlich leicht in bash erreichen:Doppelte Zeilen in einer CSV-Datei finden

uniq -d myfile.csv > list.csv 

In Powershell kann ich Ausgabe eine Liste der einzigartigen Linien, aber wie ändere ich Get-Unique nur die doppelten Linien angezeigt werden, wie ich in der Bash tat?

Get-Content c:\file\myfile.csv | Get-Unique | Set-Content c:\file\list1.csv 

Antwort

1

Es ist ein bisschen seltsam, das einzigartige Werkzeug zu verwenden, um die Duplikate zu erhalten. Wie wäre es mit:

gc .\test.csv | group -NoElement |? Count -gt 1 | select -expand name 

Dies gruppiert die Zeilen nach der Anzahl der vorhandenen, identifiziert die mit Duplikaten und gibt sie aus. z.B. if:

test.csv contains: 

a,b,c 
d,e,f 
a,b,c 
z,z,z 

gc test.csv | group 

Count Name      Group                  
----- ----      -----                  
    2 a,b,c      {a,b,c, a,b,c}               
    1 d,e,f      {d,e,f}                 
    1 z,z,z      {z,z,z}                 
    1       {}                  

und -NoElement stoppt den Aufbau der Gruppeninhalte, redundant in diesem Fall.

+0

Vielen Dank! Genau das habe ich gebraucht. – user6297176