Alisin ang mga duplicate na linya mula sa isang file

Gumagawa ako ng isang diksyunaryo ng mga pinaka ginagamit na password, ang tanyag o madalas na ginagamit ng mga gumagamit (… Huwag tanungin kung bakit… HAHAHA), para dito kumukuha ako ng teksto mula sa iba pang mga dictionary atbp, ngunit, nahanap ko ang aking sarili sa sitwasyon na maraming mga duplicate na password, at kailangan kong alisin ang mga dobleng linya.

Sa madaling salita, halimbawa ... mayroon kaming sumusunod na file: pumasa.txt

At ang nilalaman nito ay:

asdasd
lola
mahalin
asdasd
bintana
admin
linux
asdasd
mahalin

 Tulad ng nakikita natin, naulit namin «mahalin»At«asdasd«, Ang huli 3 beses. Paano alisin ang mga duplicate na linya?

Upang gawin ito ay simple, kasama ang utos na ito:

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

Lilikha ito ng isang file na tinawag pass-handa.txt na maglalaman ng:

admin
asdasd
linux
lola
mahalin
bintana

Ang ginagawa ng utos ay napaka-simple ...

  1. pass ng pusa.txt - »Ilista ang nilalaman ng file.
  2. uri - »Pagbukud-bukurin ayon sa alpabetikong nilalaman.
  3. kakaiba - »Tanggalin ang mga duplicate na linya.
  4. > pass-ready.txt - »Ang resulta ng nakaraang mga utos, ilagay ito sa file pass-ready.txt (na, dahil wala ito, lilikha nito)

Napakadaling iyon ... Natuklasan ko lang na ang utos uri oo, napakagandang ito ... ngunit, kasama ng kakaiba, sila ay isang hiyas ng sining 😀

Sana naging kapaki-pakinabang ka.

Regards

wolpeyper: Kung nais mong i-download ang wallpaper «Mahal ko ang #! / Bin / bash"Nandito ang link:

Mag-download ng Wallpaper

Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.

  1.   Carlos dijo

    Maaari mo ring gamitin ang pag-uuri -u.

    Binabati kita sa blog, gusto ko ito!

    1.    KZKG ^ Gaara dijo

      Oo tama
      Wala, maraming salamat sa pagcomment 😀

      Maligayang pagdating 😉
      Regards

  2.   Diego dijo

    Ang problema doon ay binabago nito ang pagkakasunud-sunod ng mga salita, gumagana ito ... ngunit sa huli ang resulta ay naiiba nang marami sa orihinal sa pagkakasunud-sunod (na marahil sa ilang kaso mahalaga ito)

    1.    KZKG ^ Gaara dijo

      Oo nga, inuutos nito ang mga salitang ayon sa alpabeto, kaya kung kinakailangan ang nilalaman nang WALANG mga pagkakaiba-iba, ang solusyon na ito ay hindi ang perpektong solusyon.

    2.    Carlos dijo

      Huwag maglibot, paano kung mangyari sa iyo na huwag ilagay ang utos ng pag-uuri? mangyaring mag-isip ng kaunti pa at hindi lahat ay ngumunguya.

      pass ng pusa.txt | uniq> pass-ready.txt

      1.    Eliuber dijo

        hindi ito gumana, sinubukan ko ito

      2.    palutang dijo

        hindi gumagana dahil ang "paulit-ulit" na mga linya ay dapat na tuloy-tuloy

  3.   hindi pinangalanan dijo

    salamat

    ito ay lubos na kapaki-pakinabang

  4.   giskard dijo

    Napakahusay! Isang simple at malinaw na solusyon. Gusto ko ng mga bagay na ganyan 🙂
    Aaminin kong may gagawin ako sa Python ngunit ang solusyon na ito ay mabuti.

    1.    KZKG ^ Gaara dijo

      Salamat ^ - ^

  5.   Talaga dijo

    Kamusta! napakahusay!
    May query po ako
    gagana ito para sa akin para sa sumusunod na halimbawa:
    ABCD 1111
    DEFG 2222 45455
    ABCD 1111
    DEFG 2222

    Pareho ang mga hilera ngunit mayroon silang mga puwang at ilan pang mga character ... sinusuri ba nito ang parehong salita? o sa pamamagitan ng linya? Nagpapaliwanag ako?
    simula ngayon, maraming salamat.
    Isang yakap

    1.    KZKG ^ Gaara dijo

      Hi kung paano ito pupunta
      Tulad ng nakita ko, kinukumpara nito ang mga linya at hindi mga haligi, kaya sa halimbawang binibigay mo sa akin na aalisin nito ang alinman sa ika-1 linya o ang ika-3, ang ika-2 at ika-4 na mga linya, kahit na halos magkapareho sila, hindi sila 100% magkapareho dahil mayroon silang pagkakaiba-iba ng haligi. 😉

      Salamat sa komento ^ - ^

      1.    TINE dijo

        Salamat sa iyo!! bago ito tumagal ng isang oras para sa orakulo upang matanggal ang mga duplicate ... ngayon ay tumatagal ng 30 segundo sa uri ng pusa !!

  6.   MegaBedder dijo

    Kinakailangan ko ito sa PHP: S

    1.    KZKG ^ Gaara dijo

      Uff ... Ako ay PHP, napaka-napaka-ikli ko, hindi talaga ako isang programmer 🙁

      Sorry.

    2.    brunocascio dijo

      Para sa php mayroong array_unique (...) sa opisyal na dokumentasyon ng PHP makikita mo ang maraming mahalaga at mahusay na mga pag-andar ..

      Tungkol sa uri, maliban kung kailangan mo ito, hindi kinakailangan ... Nasayang ang oras at memorya ng pagpapatupad. (para sa kung ano ang ginagawa sa post)

      Pagbati!

  7.   geek dijo

    Wow !! isang diksyunaryo upang magamit bilang brute force !! XD

  8.   Gustavo dijo

    Napakagandang kumbinasyon ng pag-uuri sa uniq! Malaki ang naitulong nito sa akin upang alisin ang mga dobleng linya.

    Salamat

  9.   Gustavo dijo

    Ang komento ni Carlos, sa kabila ng kanyang kayabangan, ay hindi wasto. Sinabi niya na gamitin ang:

    pass ng pusa.txt | uniq> pass-ready.txt

    subalit ang isang paunang kinakailangan ng uniq ay ang file ay iniutos. Dapat ay naisip tungkol dito nang kaunti pa o nagtanong dati.

  10.   Eliuber dijo

    napakahusay, na-save mo ako ng maraming oras sa pagpapatakbo ng aking bash

  11.   Flintstone dijo

    awk '! array_temp [$ 0] ++' pass.txt> pass-ready.txt
    kasama nito ang mga linya ay tinanggal nang hindi kinakailangang mag-order.

  12.   minimime dijo

    Maraming salamat sa kontribusyon!

    Bagaman magiging cool na magawa itong natatanging nang hindi binabago ang pagkakasunud-sunod, ngunit hey, isang madali at kapaki-pakinabang na utos!

  13.   Felipe Gutierrez dijo

    Salamat, malaki ang naitulong nito sa akin 😉

  14.   Ernesto dijo

    meron ako nito
    C000006158880201502051056088364 C00-06158880
    C000007601673201503051056088364 C00-07601673
    C000008659304201504051056088364 C00-08659304
    T 0809074070562015120818144287185REAÑO RUBIÑOS EMILIA DORIS
    T 0809092979972016010818144287185REAÑO RUBIÑOS EMILIA DORIS
    C000005398451201501231044214375 C00-05398451
    C000007674996201503051000000286 C00-07674996
    C000008514288201504051000000463 C00-08514288
    C000011613498201506051056088070 C00-11613498

    Paano ko makukuha ito upang ipinta lamang ang mga duplicate bawat subscriber sa isang file at iwanan ang mga hindi duplicate sa iba?

    ang subscriber ay nasa pos 23 (10 posisyon)

  15.   Fernando dijo

    pag-uuri -u -k 1,1 File.txt> resulta.txt

    Pinagsasama nito ang file sa pamamagitan ng unang patlang

  16.   Ako ay diego dijo

    2020 at nagsisilbi pa rin, maraming salamat!

  17.   Sarah dijo

    Paano ko ito maaring makita kung paano mo ito makukuha ng teksto ng file sa Linux o Windows? Kung hindi ka makakakuha ng isang file na ito, maaari kang mag-file ng file na ito upang mai-file ang file na ito upang mai-file ang file na ito? Ví d File: File 1 của tôi co 5 dông, file 2 co 15 dòng (co 2 dùng trùng lặp với File 1. Tíi muản co kết quả, File 1 v 5n giữ nguyên 2 dòng, File 2 th File only bỏ 1 dòng giống file XNUMX .
    Kung hindi mo ito maikli sa iyong file na txt đó lại với nhau, vì những file text từ điển rất ư là nhiều ký, chẳng hạn như Rockyou. Sa pamamagitan ng iyong Windows Vista, maaari mong makita ang isang Windows Vista. 🙂 Hy vọng nhận được phản hồi từ bạn!