Mengeluarkan baris pendua dari fail teks menggunakan baris arahan Linux

Mengeluarkan baris pendua dari fail teks menggunakan baris arahan Linux

Mengeluarkan garis pendua dari fail teks boleh dilakukan dari baris arahan Linux. Tugas seperti itu mungkin lebih biasa dan perlu daripada yang anda fikirkan. Senario yang paling biasa di mana ini dapat membantu adalah dengan fail log. Seringkali fail log akan mengulangi maklumat yang sama berulang kali, yang menjadikan fail hampir mustahil untuk disaring, kadang -kadang menjadikan log tidak berguna.

Dalam panduan ini, kami akan menunjukkan pelbagai contoh baris arahan yang boleh anda gunakan untuk memadam baris pendua dari fail teks. Cuba beberapa arahan di sistem anda sendiri, dan gunakan mana -mana yang paling sesuai untuk senario anda.

Dalam tutorial ini anda akan belajar:

  • Cara Menghilangkan Talian Duplikat Dari Fail Semasa Menyusun
  • Cara mengira bilangan baris pendua dalam fail
  • Cara Menghapus Talian Duplikat Tanpa Mengisih Fail
Pelbagai contoh untuk mengeluarkan baris pendua dari fail teks di linux Keperluan Perisian dan Konvensyen Talian Perintah Linux
Kategori Keperluan, konvensyen atau versi perisian yang digunakan
Sistem Mana -mana distro Linux
Perisian Shell bash
Yang lain Akses istimewa ke sistem linux anda sebagai akar atau melalui sudo perintah.
Konvensyen # - Memerlukan arahan Linux yang diberikan untuk dilaksanakan dengan keistimewaan akar sama ada secara langsung sebagai pengguna root atau dengan menggunakan sudo perintah
$ - Memerlukan arahan Linux yang diberikan sebagai pengguna yang tidak layak

Keluarkan baris pendua dari fail teks



Contoh -contoh ini akan berfungsi pada sebarang pengedaran Linux, dengan syarat anda menggunakan shell bash.

Untuk senario contoh kami, kami akan bekerjasama dengan fail berikut, yang hanya mengandungi nama -nama pelbagai pengagihan Linux. Ini adalah fail teks yang sangat mudah demi contoh, tetapi pada hakikatnya anda boleh menggunakan kaedah ini pada dokumen yang mengandungi beribu -ribu baris berulang. Kami akan melihat cara membuang semua pendua dari fail ini menggunakan contoh di bawah.

$ Cat distros.txt ubuntu centos debian ubuntu fedora debian opensuse opensuse debian 
  1. The uniq Perintah dapat mengasingkan semua baris unik dari fail kami, tetapi ini hanya berfungsi jika garis pendua bersebelahan antara satu sama lain. Agar garis bersebelahan, mereka perlu terlebih dahulu disusun menjadi urutan abjad. Perintah berikut akan berfungsi dengan menggunakan menyusun dan uniq.
    $ sort distros.txt | uniq centos debian fedora opensuse ubuntu 

    Untuk menjadikan perkara lebih mudah, kita hanya boleh menggunakan -u dengan jenis untuk mendapatkan hasil yang sama, bukannya paip ke uniq.



    $ sort -u distros.txt centos debian fedora opensuse ubuntu 
  2. Untuk melihat berapa banyak kejadian setiap baris dalam fail, kita boleh menggunakan -c (kiraan) pilihan dengan uniq.
    $ sort distros.txt | uniq -c 1 centos 3 debian 1 fedora 2 opensuse 2 ubuntu 
  3. Untuk melihat garis yang paling kerap diulang, kita boleh paip ke perintah jenis lain dengan -n (jenis angka) dan -r Pilihan terbalik. Ini membolehkan kita dengan cepat melihat baris mana yang paling diduplikasi dalam fail - satu lagi pilihan berguna untuk menyaring log.
    $ sort distros.txt | uniq -c | sort -nr 3 debian 2 ubuntu 2 opensuse 1 fedora 1 centos 


  4. Satu masalah dengan menggunakan arahan sebelumnya ialah kita bergantung menyusun. Ini bermaksud bahawa output akhir kami disusun mengikut abjad, atau disusun mengikut jumlah ulangan seperti dalam contoh sebelumnya. Ini mungkin kadang -kadang perkara yang baik, tetapi bagaimana jika kita memerlukan fail teks untuk mengekalkan pesanan sebelumnya? Kita boleh menghapuskan garisan pendua tanpa menyusun fail dengan menggunakan awk Perintah dalam sintaks berikut.
    $ awk '!dilihat [$ 0] ++ 'distro.txt ubuntu centos debian fedora opensuse 

    Dengan arahan ini, kejadian pertama garis disimpan, dan garis pendua masa depan dibatalkan dari output.

  5. Contoh sebelumnya akan menghantar output terus ke terminal anda. Sekiranya anda mahukan fail teks baru dengan baris pendua anda ditapis, anda boleh menyesuaikan contoh -contoh ini dengan hanya menggunakan > pengendali bash suka dalam arahan berikut.
    $ awk '!dilihat [$ 0] ++ 'distro.txt> distros-baru.txt 

Ini mestilah semua arahan yang anda perlukan untuk menjatuhkan garisan pendua dari fail, sementara pilihan menyusun atau mengira garis. Lebih banyak kaedah wujud, tetapi ini adalah yang paling mudah digunakan dan diingat.

Pemikiran penutupan

Dalam panduan ini, kami melihat pelbagai contoh arahan untuk mengalih keluar baris pendua dari fail teks di Linux. Anda boleh memohon arahan ini untuk log fail atau sebarang jenis fail plaintext yang mempunyai baris pendua. Kami juga belajar bagaimana menyusun garis fail teks atau mengira bilangan pendua, kerana kadang -kadang dapat mempercepat mengasingkan maklumat yang kami perlukan dari dokumen.

Tutorial Linux Berkaitan:

  • Perkara yang hendak dipasang di Ubuntu 20.04
  • Cara Meningkatkan Rendering Font Firefox di Linux
  • Pengenalan kepada Automasi, Alat dan Teknik Linux
  • Menguasai Gelung Skrip Bash
  • Perkara yang perlu dilakukan setelah memasang ubuntu 20.04 Focal Fossa Linux
  • Perintah Linux: Top 20 Perintah Paling Penting yang Anda Perlu ..
  • Perintah Linux Asas
  • Cara Gunung ISO di Linux
  • Fail Konfigurasi Linux: 30 teratas yang paling penting
  • Contoh rsync di linux