Elimina línies duplicades d'un arxiu

Estic fent un diccionari de contrasenyes més usats, els populars o freqüentment més usats pels usuaris (... no preguntin el per què ... JAJAJA), Per això estic prenent text d'altres diccionaris etc, però, em veig en la situació que hi ha muuuchos passwords duplicats, i necessito eliminar les línies duplicades.

O sigui, per exemple ... tenim el següent arxiu: pass.txt

I el seu contingut és:

asdasd
lola
amor
asdasd
finestres
admin
linux
asdasd
amor

 Com veiem, tenim repetit «amor»i«asdasd«, Aquest últim 3 vegades. ¿Com eliminar les línies duplicades?

Per fer-ho és simple, amb aquesta comanda:

cat pass.txt | sort | uniq > pass-listos.txt

Això ens generarà un fitxer anomenat pass-listos.txt que contindrà:

admin
asdasd
linux
lola
amor
finestres

El que fa la comanda és MOLT simple ...

  1. cat pass.txt - »Llista el contingut de l'arxiu.
  2. sort - »Ordena el contingut alfabèticament.
  3. únic - »Elimina les línies duplicades.
  4. > Pass-listos.txt - »El resultat de les ordres anteriors, posa-ho a l'arxiu pass-listos.txt (que, com no existeix, el crearà)

Així de simple ... recentment descobreixo que la comanda sort sí, és molt bo ... però, unit a únic, Són una joia d'art 😀

Espero els hagi estat d'utilitat.

Salutacions

paper pintat: Si voleu baixar el wallpaper «I Love #! / Bin / bash»Aquí tenen el link:

Descàrrega Wallpaper

27 comentaris, deixa el teu

Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.

  1.   Carlos va dir

    També es pot fer servir sort -u.

    Felicitats pel blog, m'encanta!

    1.    KZKG ^ Gaara va dir

      Síp cert.
      Res, moltes gràcies a tu per comentar 😀

      Benvingut 😉
      Salutacions

  2.   Diego va dir

    El problema amb això és que et canvia l'ordre de les paraules, funciona ... però a la fi el resultat difereix bastant de l'original en l'ordre (que potser en algun cas import)

    1.    KZKG ^ Gaara va dir

      Síp en efecte, això ordena les paraules alfabèticament, de manera que si el contingut es necessitava SENSE variacions, aquí aquesta solució no és la idònia.

    2.    Carlos va dir

      No fotis, ¿i si se t'ocorre no posar la comanda sort? si us plau, a pensar una mica més i no tenir tot mastegat.

      cat pass.txt | uniq> pass-listos.txt

      1.    Eliuber va dir

        no funciona ja ho probe

      2.    bob va dir

        no funciona perquè les línies «repetides» han d'estar contínues

  3.   sense nom va dir

    gràcies

    és força útil

  4.   Giskard va dir

    Molt bo! Una solució simple i clara. M'agraden les coses així 🙂
    He de reconèixer que jo hauria fet alguna cosa en Python però aquesta solució està molt bé.

    1.    KZKG ^ Gaara va dir

      Gràcias ^ - ^

  5.   tino va dir

    hola! molt bo!
    tinc una consulta si us plau,
    em funcionaria per al següent exemple:
    ABCD 1111
    DEFG 2222 45455
    ABCD 1111
    DEFG 2222

    Les files són iguals però tenen espais i alguns caràcters més ... això comprova per paraula igual? o per renglon? m'explico?
    des de ja, et agraeixo un munt.
    Una abraçada

    1.    KZKG ^ Gaara va dir

      Hola que tal,
      Segons vaig veure, això compara línies i no columnes, de manera que en l'exemple que em poses això trauria o la 1ra línia o la 3ra, la 2dóna i 4ta línia tot i que són gairebé idèntiques, no són 100% idèntiques ja que tenen una columna de diferència. 😉

      Gràcies pel comentari ^ - ^

      1.    TINO va dir

        Gràcies a vós !! abans trigava uan hora per oracle per eliminar duplicats ... ara trigo 30 segons amb el cat sort !!

  6.   MegaBedder va dir

    Jo ho requereixo en PHP: S

    1.    KZKG ^ Gaara va dir

      Uff ... jo de PHP és que camino molt i molt curt, no sóc programador en realitat 🙁

      Em sap greu.

    2.    brunocasci va dir

      Per php hi array_unique (...) en la documentació oficial de PHP trobaràs moltes funcions importants i eficients ..

      Pel que fa a l'sort, llevat que ho necessitis, no cal ... Es malgasta temps d'ejecucion i memòria. (Per al que es fa en el post)

      Salutacions!

  7.   frikilui va dir

    Wow !! un diccionari per a usar-lo com a força bruta !! XD

  8.   Gustavo va dir

    Molt bona la combinació de sort amb uniq! Em va ajudar molt per eliminar línies duplicades.

    Gràcias

  9.   Gustavo va dir

    El comentari de Carles, malgrat la seva supèrbia, no és vàlid. Ell diu d'usar:

    cat pass.txt | uniq> pass-listos.txt

    però un prerequisit de uniq és que l'arxiu estigui ordenat. Ho hauria d'haver pensat una mica més o informar-se abans.

  10.   Eliuber va dir

    molt bo, em vas estalviar una gran quantitat de temps a l'executar el meu bash

  11.   Pedro Picapedra va dir

    awk '! array_temp [$ 0] ++' pass.txt> pass-listos.txt
    amb això s'eliminen les línies sense haver de ordenar.

  12.   miniminiyo va dir

    Moltes gràcies per l'aportació!

    Encara que molaria poder fer-ho únic sense canviar l'ordre, però bé, una ordre fàcil i útil!

  13.   Felipe Gutiérrez va dir

    Gràcies, em va servir moltíssim 😉

  14.   ernesto va dir

    tinc això
    C 000006158880201502051056088364 C00-06158880
    C 000007601673201503051056088364 C00-07601673
    C 000008659304201504051056088364 C00-08659304
    T 0809074070562015120818144287185REAÑO Rubinos EMILIA DORIS
    T 0809092979972016010818144287185REAÑO Rubinos EMILIA DORIS
    C 000005398451201501231044214375 C00-05398451
    C 000007674996201503051000000286 C00-07674996
    C 000008514288201504051000000463 C00-08514288
    C 000011613498201506051056088070 C00-11613498

    com faig perquè em pinti en un arxiu només els duplicats per abonat i em deixi en un altre els que no són duplicats

    l'abonat està en la post 23 (10 posicions)

  15.   Fernando va dir

    sort -u -k 1,1 fitxer.txt> resultado.txt

    Això ordena l'arxiu pel primer camp

  16.   SoyDiego va dir

    2020 i segueix servint, moltes gràcies!

  17.   sarah va dir

    Bạn car The Huong donen CACH Loai Bỏ các dòng Trung Lap của nhiều file text trong Linux or Windows được không? Cung Nhu Trường hop của bạn, khi Toi tạo file từ điển vaig veure toi chia nội dung ra Nen car Kha nhiều file và Chac Chan car nhiều dòng Trung Lap Giua các file. Vaig veure Du: File 1 của toi car maig dòng, file 5 car 2 dòng (car febrer dòng Trung Lap voi File 15. toi muon car kết qua, File 2 van Giù Nguyên 1 dòng, File 1 Thi es Loai Bỏ 5 dòng Giong file 2.
    Nhu bạn Biet car nhiều lí do Chung ta ko the GOP các file txt DJO lại Voi nhau, vaig veure Nhung file text từ điển Rat u la nhiều KY, Chang han Nhu RockYou. Thuc et toi muon Thuc Hiện điều này Bên Windows Hon, và Chac Chan ko the GOP Chung o Ben Windows được. 🙂 Hy Vong Nhan được Phan Hoi từ bạn!