Jak szybko usunąć duplikaty linii?


(Djzon) #1

Jak szybko usunąć duplikaty linii?


(bachus) #2

Ja bym to wrzucił na chwilę na jakiegoś *nix, ew. cygwinem coś na zasadzie: cat plik.txt | sort | uniq >> wyjscie.txt


(krypton) #3

www.secretgeek.net/ps_duplicates


(Djzon) #4

Usunięte, odpowiedź na błedny temat…


(bachus) #5

Ja mogę podać przepis na sernik… Ten cytat to z czego? Już dałem odpowiedź. Możesz też użyć świetnego notepad++, obsługuje wyrażenia regularne.Tak na szybko (nie testowałem):    ^(.*?)$\s+?^(?=.*^\1$)

Jak nadal nie to, co szukasz - zawsze możesz probować zaimportować do Excela, posortować i użyć funkcji usunięcia duplikatów.


(Djzon) #6

Post 4.


(bachus) #7

 

A ten temat już rozwiązany?


(Djzon) #8

bachus - Tamta odpowiedź miała się tyczyć tego tematu związanegoz artefaktami graficznymi.

Prawdopodobnie związane z nadmiernym wykorzystaniem pamięci RAM (systemowej lub pamięci VIDEO karty graficznej) przez program

http://forum.dobreprogramy.pl/rozmazywanie-aktywnych-okien-programów-t493103/

A jeśli chodzi o Twój przepis to zaraz sprawdzę czy da się z nigo coś pysznego upiec…


(bachus) #9

Zacznij od notepad++ jakby co pytaj.


(Djzon) #10

W Notepad++ działa dobrze ale jak już mówiłem Notepad++ ma limit linii i nie otworzy pliku.

EmEditor otwiera ale mam problem z Regex: Trzeba coś zmienić w regex:

Jak używać regex:

249606377101654.jpg

50486f377101679.jpg


(bachus) #11

A powershell? Mam Ci coś klepnac na szybko? Sprawdziłem, działa:

 Get-Content .\do_usuwania_duplikatow.txt | Select-Object -Unique >> wynik.txt

Możesz z ciekawości pokazać, ile to zajmie:

Measure-Command { Get-Content .\do_usuwania_duplikatow.txt | Select-Object -Unique >> wynik.txt}

(Djzon) #12

Jeśli możesz i masz chwile czasu…


(bachus) #13

 

Sprawdzone, działa (edytowałem poprzedni post).


(Drobok) #14

Spróbuj duplicatefinder  :arrow: program pisany przez matzu


(Djzon) #15

drobok - sprawdziłem działa i usuneło baaaardzo szybko.


(Drobok) #16

Musisz mieć znaczniki początku i końca linii bo inaczej mógłby ci sparsować część linii.we

Używasz regexp by nie robić czegoś X razy

cyferke masz ok (nie licząc braku znacznika początku linii)

 

^-?\d+$

Daj znać czy ci notepad++ ogarnia ten plik. Ew Weź wrzuć w pętlę przepisywanie między plikami z tym wyrażeniem i będzie ok.


(Djzon) #17

drobok - doskonale działa regularne wyrażenie :slight_smile: plik po usunieciu dupliaktów ma mniej linii teraz (300 k linii i około 10 MB tekstowy plik) więc teraz jest wszystko dobrze. I mam już gotową listę.