Xóa các dòng trùng lặp khỏi tệp

Tôi đang tạo từ điển các mật khẩu được sử dụng nhiều nhất, mật khẩu phổ biến hoặc được người dùng sử dụng thường xuyên nhất (… Đừng hỏi tại sao… HAHAHA), vì điều này, tôi đang lấy văn bản từ các từ điển khác, v.v. nhưng, tôi thấy mình đang ở trong tình huống có nhiều mật khẩu trùng lặp và tôi cần loại bỏ các dòng trùng lặp.

Đó là, ví dụ ... chúng tôi có tệp sau: Pass.txt.

Và nội dung của nó là:

asdasd
lola
yêu
asdasd
cửa sổ
quản trị viên
linux
asdasd
yêu

 Như chúng ta thấy, chúng ta đã lặp lại «yêu"Y"asdasd«, 3 lần sau. Làm thế nào để loại bỏ các dòng trùng lặp?

Để làm điều đó rất đơn giản, với lệnh này:

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

Điều này sẽ tạo ra một tệp có tên pass-ready.txt sẽ chứa:

quản trị viên
asdasd
linux
lola
yêu
cửa sổ

Những gì lệnh thực hiện rất đơn giản ...

  1. mèo pass.txt - »Liệt kê nội dung của tệp.
  2. loại - »Sắp xếp nội dung theo thứ tự bảng chữ cái.
  3. độc nhất - »Loại bỏ các dòng trùng lặp.
  4. > pass-ready.txt - »Kết quả của các lệnh trước đó, hãy đưa nó vào tệp pass-ready.txt (mà, vì nó không tồn tại, sẽ tạo ra nó)

Thật đơn giản ... Tôi vừa phát hiện ra rằng lệnh loại vâng, nó rất tốt ... nhưng, cùng với độc nhất, họ là một viên ngọc của nghệ thuật 😀

Tôi hy vọng bạn đã được hữu ích.

Liên quan

Hình nền: Nếu bạn muốn tải hình nền «Tôi yêu #! / Bin / bash»Đây là liên kết:

Tải xuống hình nền

Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.

  1.   Carlos dijo

    Bạn cũng có thể sử dụng sắp xếp -u.

    Xin chúc mừng blog, tôi yêu nó!

    1.    KZKG ^ Gaara dijo

      Đúng vậy.
      Không có gì, cảm ơn bạn rất nhiều đã bình luận 😀

      Chào mừng 😉
      Liên quan

  2.   Diego dijo

    Vấn đề với điều đó là nó thay đổi thứ tự của các từ, nó hoạt động ... nhưng cuối cùng kết quả khác rất nhiều so với bản gốc về thứ tự (có lẽ trong một số trường hợp quan trọng)

    1.    KZKG ^ Gaara dijo

      Đúng vậy, giải pháp này sắp xếp các từ theo thứ tự bảng chữ cái, vì vậy nếu nội dung cần thiết mà KHÔNG có biến thể, giải pháp này không phải là giải pháp lý tưởng.

    2.    Carlos dijo

      Đừng vặn vẹo, điều gì sẽ xảy ra nếu bạn không đặt lệnh sắp xếp? xin vui lòng suy nghĩ nhiều hơn một chút và không có mọi thứ nhai lại.

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

      1.    Eliuber dijo

        nó không hoạt động, tôi đã thử nó

      2.    ngũ cốc dijo

        không hoạt động vì các dòng "lặp lại" phải liên tục

  3.   vô danh dijo

    cảm ơn

    nó khá hữu ích

  4.   giskard dijo

    Rất tốt! Một giải pháp đơn giản và rõ ràng. Tôi thích những thứ như thế 🙂
    Tôi phải thừa nhận rằng tôi đã làm điều gì đó bằng Python nhưng giải pháp này vẫn ổn.

    1.    KZKG ^ Gaara dijo

      Cảm ơn ^ - ^

  5.   tino dijo

    Xin chào! rất tốt!
    Tôi có một câu hỏi xin vui lòng
    nó sẽ hoạt động cho tôi trong ví dụ sau:
    Hình 1111.
    DEFG 2222 45455
    Hình 1111.
    DEFG 2222

    Các hàng giống nhau nhưng chúng có khoảng trắng và thêm một vài ký tự ... điều này có kiểm tra cùng một từ không? hoặc theo dòng? Tôi giải thích?
    từ bây giờ, tôi cảm ơn bạn rất nhiều.
    Một cái ôm

    1.    KZKG ^ Gaara dijo

      Chào bạn
      Như tôi đã thấy, điều này so sánh các dòng và không phải cột, vì vậy trong ví dụ bạn cung cấp cho tôi, điều này sẽ loại bỏ dòng 1 hoặc dòng 3, 2 và 4, mặc dù chúng gần như giống nhau, chúng không giống nhau 100% vì chúng có một cột khác biệt. 😉

      Cảm ơn đã nhận xét ^ - ^

      1.    Tino dijo

        Cảm ơn bạn !! trước khi oracle mất một giờ để loại bỏ các bản sao ... bây giờ phải mất 30 giây với phân loại mèo !!

  6.   MegaBedder. dijo

    Tôi yêu cầu nó bằng PHP: S

    1.    KZKG ^ Gaara dijo

      Uff ... Tôi là PHP, tôi rất, rất lùn, tôi không thực sự là một lập trình viên 🙁

      Tôi xin lỗi.

    2.    brunocascio dijo

      Đối với php, có array_unique (…) trong tài liệu PHP chính thức, bạn sẽ tìm thấy nhiều hàm quan trọng và hiệu quả ..

      Về phân loại, trừ khi bạn cần, không cần thiết ... Thời gian thực thi và bộ nhớ bị lãng phí. (cho những gì được thực hiện trong bài đăng)

      Chúc mừng!

  7.   ham vui dijo

    Chà !! một từ điển để sử dụng như vũ phu !! XD

  8.   Gustavo dijo

    Rất tốt khi kết hợp sắp xếp với uniq! Nó đã giúp tôi rất nhiều để loại bỏ các dòng trùng lặp.

    Cảm ơn

  9.   Gustavo dijo

    Nhận xét của Carlos, bất chấp sự ngạo mạn của anh ta, không có giá trị. Anh ấy nói sử dụng:

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

    tuy nhiên điều kiện tiên quyết của uniq là tệp được sắp xếp thứ tự. Bạn nên nghĩ về nó nhiều hơn một chút hoặc thông báo cho bản thân trước đó.

  10.   Eliuber dijo

    rất tốt, bạn đã tiết kiệm cho tôi rất nhiều thời gian chạy bash của tôi

  11.   Đá lửa dijo

    awk '! array_temp [$ 0] ++' pass.txt> pass-ready.txt
    với điều này, các dòng được loại bỏ mà không cần phải đặt hàng.

  12.   thu nhỏ dijo

    Cảm ơn bạn rất nhiều vì sự đóng góp!

    Mặc dù sẽ rất tuyệt nếu có thể biến nó thành duy nhất mà không thay đổi thứ tự, nhưng này, một lệnh dễ dàng và hữu ích!

  13.   Felipe Gutierrez dijo

    Cảm ơn bạn, nó đã giúp tôi rất nhiều 😉

  14.   ernesto dijo

    Tôi có cái này
    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

    Làm cách nào để nó chỉ vẽ các bản sao cho mỗi người đăng ký trong một tệp và để lại các bản sao không trùng lặp trong một tệp khác?

    người đăng ký ở vị trí 23 (10 vị trí)

  15.   Fernando dijo

    sort -u -k 1,1 File.txt> result.txt

    Thao tác này sắp xếp tệp theo trường đầu tiên

  16.   Tôi là diego dijo

    2020 và vẫn còn phục vụ, cảm ơn bạn rất nhiều!

  17.   sarah dijo

    Bạn có thể cùng hướng dẫn loại bỏ sự lặp lại các dòng của nhiều tệp văn bản trong Linux hoặc Windows được không? Cũng giống như trường hợp của bạn, khi tôi tạo từ điển tệp vì tôi chia nội dung ra, Nên có khá nhiều tệp và chắc chắn có nhiều dòng trùng lặp giữa các tệp. Ví dụ: File 1 của tôi có 5 dòng, tệp 2 có 15 dòng (có 2 dòng trùng lặp với File 1. Tôi muốn có kết quả, File 1 vẫn giữ nguyên 5 dòng, File 2 thì chỉ bỏ 2 dòng giống như file 1 .
    Như bạn biết có nhiều li do chúng ta không thể giảm bớt các tập tin đó lại với nhau, bởi vì những tập tin văn bản từ điển rất hay là nhiều ký hiệu, chẳng hạn như Rockyou. Thực tế, tôi muốn thực hiện điều này bên Windows hơn, và chắc chắn rằng họ không thể thực hiện được bên ngoài Windows. 🙂 Hy vọng nhận được phản hồi từ bạn!