none
Doppelte Zeilen in txt finden RRS feed

  • Frage

  • Hallo,

    ich habe eine ip-list.txt in der viele IPs untereinander stehen. Ich möchte nun auf doppelte IPs prüfen.

    Mein bisheriger Versuch sieht so aus:

    $file = Get-Content $path"\ip-list.txt"
    foreach ($row in $file){
        $exist = Select-String -path $path"\ip-list.txt" -SimpleMatch $row    
        if($exist -is [system.array]){
            echo "IP bereits vorhanden: $row"
            echo "`n"
        }
    }

    Jetzt habe ich 2 Probleme.

    Das erste: die IPs 11.22.11.22 und 11.22.11.223 würden einen Treffer ergeben, da 11.22.11.22 in 11.22.11.223 vorhanden ist.

    Das zweite: Wenn ich wirklich einen doppelten eintrag hätte, würde es mir die IP 2 mal ausgeben.

    Das 2. Problem ist eher unwichtig, das würde ich vermutlich noch selbst hinbekommen.

    Ich hoffe ihr könnt mir weiterhelfen.

    lg Zuyas

    Mittwoch, 3. April 2013 11:47

Antworten

  • Hi,

    Select-Object -Unique geht nicht?

    Ich benutze auch gerne HashTables um Duplikate zu finden:

    $numbers = 1,2,3,4,5,1,6,7,4,8,8,9
    $hashtable = @{}
    foreach ($number in $numbers)
    {
    	try
    	{
    		$hashtable.Add($number, $null)
    	}
    	catch
    	{
    		Write-Host "Duplicate found: $number"
    	}
    }
    


    -Raimund


    Mittwoch, 3. April 2013 11:56

Alle Antworten

  • Hi,

    Select-Object -Unique geht nicht?

    Ich benutze auch gerne HashTables um Duplikate zu finden:

    $numbers = 1,2,3,4,5,1,6,7,4,8,8,9
    $hashtable = @{}
    foreach ($number in $numbers)
    {
    	try
    	{
    		$hashtable.Add($number, $null)
    	}
    	catch
    	{
    		Write-Host "Duplicate found: $number"
    	}
    }
    


    -Raimund


    Mittwoch, 3. April 2013 11:56
  • Danke für die schnelle Antwort.

    Ich habe erst vor 2 tagen mit Powershell angefangen und weiß noch nicht was die hashtable und try/catch macht. Ich werde mir das mal angucken.

    lg Zuyas

    EDIT:

    Habs hinbekommen! Danke :)

    • Bearbeitet Zuyas Mittwoch, 3. April 2013 14:00 Gelöst
    Mittwoch, 3. April 2013 12:49