Okuma yaptığım bir PowerShell komut dosyası yazdım (CSV'nin gerekli olmaması şartıyla). Bu iki sütun, vaka numarası ve cin numarası var. Bu çifti tekrarlanan oluyor eğer tüm kayıtları kaldırmak istiyorPowershell'deki değerler çiftine göre yinelenen kayıtları nasıl kaldırılır?
Girdi Dosya:
abc 1234 class1
def 1234 class2
abc 5678 class3
def 1234 class4
ghi 1001 class5
İstenilen Çıktı geçerli: komut aşağıdaki Ben wrriten gelmiş Bunun için
abc 1234 class1
def 1234 class2
abc 5678 class3
ghi 1001 class5
(Girdi dosyası daha olacak sütunlar):
$inputFile ="D:\powershell\test files\01PRD_MAGI_12_03.txt";
$outputFile = "D:\powershell\test files\output.txt" ;
$stream = [System.IO.StreamWriter]"$outputFile"
$seenPair = @{}
$lines = Get-Content $inputFile
$count = 0
foreach($line in $lines){
$count = $count + 1
#write all header rows and last line as it is in output file
if($count -eq 1 -or $count -eq 2 -or $count -eq 3 -or $line.startsWith('*') -or $line.startsWith('-')){
$stream.WriteLine($line);
}
else{
$ldrCaseNum = $line.Substring(3,7)
$cin = $line.Substring(70,9)
if($seenPair.Contains($ldrCaseNum)){
$cinVal = $seenPair.Get_Item($ldrCaseNum)
if($cin -eq $cinVal){
continue;
}
else{
$stream.WriteLine($line)
}
}
else{
$seenPair.Add($ldrCaseNum,$cin)
$stream.WriteLine($line)
}
}
}
$stream.close()
Fakat bu durumda, eğer aynı çift tekrarlanırsa $ seenPair değişkeninde saklanır, daha sonra bu kayıt silinir. Fakat aynı anahtar için farklı değer çiftleri tekrarlanacak, daha sonra bu anahtar için bir değer taşıdığı için onu kaldırmayacaktır.
Örnek:
abc 1234 class1
def 1234 class2
abc 5678 class3
abc 5678 class3
def 1234 class4
ghi 1001 class5
çıkışı olacaktır:
abc 1234 class1
def 1234 class2
abc 5678 class3
abc 5678 class3
ghi 1001 class5
İstenilen çıktı şöyledir: Bunun için herhangi bir başka çözüm
abc 1234 class1
def 1234 class2
abc 5678 class3
ghi 1001 class5
var mı?
Ben senin 2 komutunu çalıştırın, veri başlığı olarak geliyor = "", başlık = "", .... her satırdaki csv içinde. Bu neden böyle? İçinde – Madhusudan
hangi csv? Ben csv –
çıktısını alıyorum $ Objects | Sort-Object -Property Case, Cin -Unique içeriğini bir veri değişkeni içinde okuduğumu ve bir dosyaya yazıyorum. – Madhusudan