Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [inne]sortowanie powtórzeń, potrzebny skrypt do przesortowania bazy danych .txt
jaszpol
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 10.04.2012

Ostrzeżenie: (0%)
-----


Witam serdecznie wszystkich użytkowników forum jako iż jestem nowy to postaram się w miarę zrozumiale przedstawić problem jaki mam. Otóż posiadam baze 3 tys maili w formacie .txt w układzie
mail@mail.com
mail@mail1.com
mail@mail.com
itd. aż do 3000

Mam problem ponieważ podczas gdy wysyłam te maile to są powtórzenia adresów. Są to maile z moich paru stron i jak ktoś rejestrował się na wszystkich moich stronach to jest parę razy w tej bazie. Chciał bym od was uzyskać jakąś pomoc, wskazówkę jak usunąć te powtórzenia maili. Bo ręcznie raczej nie będę 3000 maili sortował. Jakieś podpowiedzi?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
redeemer
post
Post #2





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

Ostrzeżenie: (0%)
-----


sort i uniq to dwa oddzielne polecenia. sort -d wypisuje w kolejności alfabetycznej, a do wypisania rekordów unikalnych służy flaga -u (możesz jeszcze dodać -f do ignorowania wielkości liter). U mnie działa bez zarzutów. Gdybyś dalej nie mógł sobie poradzić, to poniżej skrypt w php "na szybko", który powinien robić to samo:
  1. $tmpArray = array();
  2. $lines = file('./plik.txt');
  3. foreach($lines as $line) {
  4. echo isset($tmpArray[ ($trimmed=trim($line)) ]) ? false : ($tmpArray[ $trimmed ] = $trimmed)."\n";
  5. }
Go to the top of the page
+Quote Post
jaszpol
post
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 10.04.2012

Ostrzeżenie: (0%)
-----


Cytat(redeemer @ 11.04.2012, 09:34:50 ) *
sort i uniq to dwa oddzielne polecenia. sort -d wypisuje w kolejności alfabetycznej, a do wypisania rekordów unikalnych służy flaga -u (możesz jeszcze dodać -f do ignorowania wielkości liter). U mnie działa bez zarzutów. Gdybyś dalej nie mógł sobie poradzić, to poniżej skrypt w php "na szybko", który powinien robić to samo:
  1. $tmpArray = array();
  2. $lines = file('./plik.txt');
  3. foreach($lines as $line) {
  4. echo isset($tmpArray[ ($trimmed=trim($line)) ]) ? false : ($tmpArray[ $trimmed ] = $trimmed)."\n";
  5. }


Jesteś moim mistrzem człowieku, jak bym Cię kiedykolwiek spotkał wiszę ci piwo. Nikt ale to nikt nie potrafił mi z tym pomóc, z nauczycieli w szkole nikt nie potrafił takiego czegoś zrobić. (chodzę do technikum informatycznego) Co do putty to funkcja sortująca była ograniczona i sortowała max 270-pare maili tylko. A skrypt php zrobił to w sekunde. Z 3254 maili zostało mi 2932 maile. Nawet po wpisywaniu tego co pisałeś w ostatnim poście linux był ograniczony, jednak php rządzi. Stworzyłem tylko plik skrypt.php dodałem w nim znacznik startu i końca dokumentu, twoją treść skryptu i wszystko mi przesortowało. Naprawdę dzięki za rozwiązanie problemu. Proszę o zamknięcie (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 09:24